diff --git a/wagtail/contrib/wagtailstyleguide/templates/wagtailstyleguide/base.html b/wagtail/contrib/wagtailstyleguide/templates/wagtailstyleguide/base.html
index c0288caca..b16bc445c 100644
--- a/wagtail/contrib/wagtailstyleguide/templates/wagtailstyleguide/base.html
+++ b/wagtail/contrib/wagtailstyleguide/templates/wagtailstyleguide/base.html
@@ -349,8 +349,6 @@
{% include "wagtailimages/images/_file_field.html" %}
{% elif field.name == 'image_chooser' %}
{% include "wagtailimages/edit_handlers/image_chooser_panel.html" with field=field only %}
- {% elif field.name == 'document_chooser' %}
- {% include "wagtaildocs/edit_handlers/document_chooser_panel.html" with field=field only %}
{% else %}
{% include "wagtailadmin/shared/field_as_li.html" %}
{% endif %}
diff --git a/wagtail/wagtaildocs/edit_handlers.py b/wagtail/wagtaildocs/edit_handlers.py
index 70f562847..53b752f1c 100644
--- a/wagtail/wagtaildocs/edit_handlers.py
+++ b/wagtail/wagtaildocs/edit_handlers.py
@@ -5,7 +5,6 @@ from .widgets import AdminDocumentChooser
class BaseDocumentChooserPanel(BaseChooserPanel):
- field_template = "wagtaildocs/edit_handlers/document_chooser_panel.html"
object_type_name = "document"
@classmethod
diff --git a/wagtail/wagtaildocs/templates/wagtaildocs/edit_handlers/document_chooser_panel.html b/wagtail/wagtaildocs/templates/wagtaildocs/edit_handlers/document_chooser_panel.html
index 59dc2ed2a..4ea2a3d7a 100644
--- a/wagtail/wagtaildocs/templates/wagtaildocs/edit_handlers/document_chooser_panel.html
+++ b/wagtail/wagtaildocs/templates/wagtaildocs/edit_handlers/document_chooser_panel.html
@@ -1,7 +1,2 @@
-{% extends "wagtailadmin/edit_handlers/chooser_panel.html" %}
-{% load i18n %}
-{% block chooser_class %}document-chooser{% endblock %}
-
-{% block chosen_state_view %}
- {{ document.title }}
-{% endblock %}
+{# Document chooser is now implemented as an entirely standard form widget - document_chooser_panel.html is redundant #}
+{% include "wagtailadmin/shared/field.html" %}
diff --git a/wagtail/wagtaildocs/templates/wagtaildocs/widgets/document_chooser.html b/wagtail/wagtaildocs/templates/wagtaildocs/widgets/document_chooser.html
new file mode 100644
index 000000000..ac023728a
--- /dev/null
+++ b/wagtail/wagtaildocs/templates/wagtaildocs/widgets/document_chooser.html
@@ -0,0 +1,6 @@
+{% extends "wagtailadmin/widgets/chooser.html" %}
+{% block chooser_class %}document-chooser{% endblock %}
+
+{% block chosen_state_view %}
+ {{ document.title }}
+{% endblock %}
diff --git a/wagtail/wagtaildocs/widgets.py b/wagtail/wagtaildocs/widgets.py
index e5d490f51..73267b539 100644
--- a/wagtail/wagtaildocs/widgets.py
+++ b/wagtail/wagtaildocs/widgets.py
@@ -2,14 +2,29 @@ from __future__ import absolute_import, unicode_literals
import json
+from django.template.loader import render_to_string
from django.utils.translation import ugettext_lazy as _
from wagtail.wagtailadmin.widgets import AdminChooser
+from wagtail.wagtaildocs.models import Document
class AdminDocumentChooser(AdminChooser):
choose_one_text = _('Choose a document')
choose_another_text = _('Choose another document')
+ def render_html(self, name, value, attrs):
+ original_field_html = super(AdminDocumentChooser, self).render_html(name, value, attrs)
+
+ instance = self.get_instance(Document, value)
+
+ return render_to_string("wagtaildocs/widgets/document_chooser.html", {
+ 'widget': self,
+ 'original_field_html': original_field_html,
+ 'attrs': attrs,
+ 'value': value,
+ 'document': instance,
+ })
+
def render_js_init(self, id_, name, value):
return "createDocumentChooser({0});".format(json.dumps(id_))