diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/widgets/chooser.html b/wagtail/wagtailadmin/templates/wagtailadmin/widgets/chooser.html
index aff5c34481..98b1bfb8b8 100644
--- a/wagtail/wagtailadmin/templates/wagtailadmin/widgets/chooser.html
+++ b/wagtail/wagtailadmin/templates/wagtailadmin/widgets/chooser.html
@@ -17,7 +17,7 @@
{% endif %}
- {{ widget.link_to_chosen_text }}
+ {{ widget.link_to_chosen_text }}
diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/widgets/page_chooser.html b/wagtail/wagtailadmin/templates/wagtailadmin/widgets/page_chooser.html
index 487cce366f..f029913a90 100644
--- a/wagtail/wagtailadmin/templates/wagtailadmin/widgets/page_chooser.html
+++ b/wagtail/wagtailadmin/templates/wagtailadmin/widgets/page_chooser.html
@@ -3,3 +3,5 @@
{% block chosen_state_view %}
{{ page.title }}
{% endblock %}
+
+{% block edit_chosen_item_url %}{% if page %}{% url 'wagtailadmin_pages_edit' page.id %}{% endif %}{% endblock %}
diff --git a/wagtail/wagtailadmin/widgets.py b/wagtail/wagtailadmin/widgets.py
index 00591e6783..287df72515 100644
--- a/wagtail/wagtailadmin/widgets.py
+++ b/wagtail/wagtailadmin/widgets.py
@@ -41,7 +41,6 @@ class AdminChooser(WidgetWithScript, widgets.Input):
choose_one_text = _("Choose an item")
choose_another_text = _("Choose another item")
clear_choice_text = _("Clear choice")
- link_to_chosen_url = "#"
link_to_chosen_text = _("Edit this item")
def get_instance(self, model_class, value):
@@ -72,8 +71,6 @@ class AdminChooser(WidgetWithScript, widgets.Input):
self.clear_choice_text = kwargs.pop('clear_choice_text')
if 'link_to_chosen_text' in kwargs:
self.link_to_chosen_text = kwargs.pop('link_to_chosen_text')
- if 'link_to_chosen_url' in kwargs:
- self.link_to_chosen_url = kwargs.pop('link_to_chosen_url')
super(AdminChooser, self).__init__(**kwargs)
@@ -81,7 +78,6 @@ class AdminPageChooser(AdminChooser):
target_content_type = None
choose_one_text = _('Choose a page')
choose_another_text = _('Choose another page')
- link_to_chosen_url = "#"
link_to_chosen_text = _('Edit this page')
def __init__(self, content_type=None, **kwargs):
@@ -94,11 +90,6 @@ class AdminPageChooser(AdminChooser):
model_class = self.target_content_type.model_class()
instance = self.get_instance(model_class, value)
- try:
- self.link_to_chosen_url = reverse('wagtailadmin_pages_edit', args=(instance.id,))
- except AttributeError:
- pass
-
return render_to_string("wagtailadmin/widgets/page_chooser.html", {
'widget': self,
'original_field_html': original_field_html,
diff --git a/wagtail/wagtaildocs/templates/wagtaildocs/widgets/document_chooser.html b/wagtail/wagtaildocs/templates/wagtaildocs/widgets/document_chooser.html
index ac023728ad..d4944904d3 100644
--- a/wagtail/wagtaildocs/templates/wagtaildocs/widgets/document_chooser.html
+++ b/wagtail/wagtaildocs/templates/wagtaildocs/widgets/document_chooser.html
@@ -4,3 +4,5 @@
{% block chosen_state_view %}
{{ document.title }}
{% endblock %}
+
+{% block edit_chosen_item_url %}{% if document %}{% url 'wagtaildocs_edit_document' document.id %}{% endif %}{% endblock %}
diff --git a/wagtail/wagtaildocs/widgets.py b/wagtail/wagtaildocs/widgets.py
index e0d256e6fa..a348f1e58d 100644
--- a/wagtail/wagtaildocs/widgets.py
+++ b/wagtail/wagtaildocs/widgets.py
@@ -2,7 +2,6 @@ from __future__ import absolute_import, unicode_literals
import json
-from django.core.urlresolvers import reverse
from django.template.loader import render_to_string
from django.utils.translation import ugettext_lazy as _
@@ -13,7 +12,6 @@ from wagtail.wagtaildocs.models import Document
class AdminDocumentChooser(AdminChooser):
choose_one_text = _('Choose a document')
choose_another_text = _('Choose another document')
- link_to_chosen_url = "#"
link_to_chosen_text = _('Edit this document')
def render_html(self, name, value, attrs):
@@ -21,11 +19,6 @@ class AdminDocumentChooser(AdminChooser):
instance = self.get_instance(Document, value)
- try:
- self.link_to_chosen_url = reverse('wagtaildocs_edit_document', args=(instance.id,))
- except AttributeError:
- pass
-
return render_to_string("wagtaildocs/widgets/document_chooser.html", {
'widget': self,
'original_field_html': original_field_html,
diff --git a/wagtail/wagtailimages/templates/wagtailimages/widgets/image_chooser.html b/wagtail/wagtailimages/templates/wagtailimages/widgets/image_chooser.html
index 428b12247b..e77cd78c57 100644
--- a/wagtail/wagtailimages/templates/wagtailimages/widgets/image_chooser.html
+++ b/wagtail/wagtailimages/templates/wagtailimages/widgets/image_chooser.html
@@ -12,3 +12,5 @@
{% endif %}
{% endblock %}
+
+{% block edit_chosen_item_url %}{% if image %}{% url 'wagtailimages_edit_image' image.id %}{% endif %}{% endblock %}
diff --git a/wagtail/wagtailimages/widgets.py b/wagtail/wagtailimages/widgets.py
index d7dcd9b0b6..aa0fae71c4 100644
--- a/wagtail/wagtailimages/widgets.py
+++ b/wagtail/wagtailimages/widgets.py
@@ -2,7 +2,6 @@ from __future__ import absolute_import, unicode_literals
import json
-from django.core.urlresolvers import reverse
from django.template.loader import render_to_string
from django.utils.translation import ugettext_lazy as _
@@ -13,7 +12,6 @@ from wagtail.wagtailimages.models import get_image_model
class AdminImageChooser(AdminChooser):
choose_one_text = _('Choose an image')
choose_another_text = _('Choose another image')
- link_to_chosen_url = "#"
link_to_chosen_text = _('Edit this image')
def __init__(self, **kwargs):
@@ -25,11 +23,6 @@ class AdminImageChooser(AdminChooser):
instance = self.get_instance(self.image_model, value)
- try:
- self.link_to_chosen_url = reverse('wagtailimages_edit_image', args=(instance.id,))
- except AttributeError:
- pass
-
return render_to_string("wagtailimages/widgets/image_chooser.html", {
'widget': self,
'original_field_html': original_field_html,
diff --git a/wagtail/wagtailsnippets/templates/wagtailsnippets/widgets/snippet_chooser.html b/wagtail/wagtailsnippets/templates/wagtailsnippets/widgets/snippet_chooser.html
index b46f3dbdc2..07425a633d 100644
--- a/wagtail/wagtailsnippets/templates/wagtailsnippets/widgets/snippet_chooser.html
+++ b/wagtail/wagtailsnippets/templates/wagtailsnippets/widgets/snippet_chooser.html
@@ -5,3 +5,5 @@
{% block chosen_state_view %}
{{ item }}
{% endblock %}
+
+{% block edit_chosen_item_url %}{% if item %}{% url 'wagtailsnippets_edit' widget.target_content_type.app_label widget.target_content_type item.id %}{% endif %}{% endblock %}
diff --git a/wagtail/wagtailsnippets/widgets.py b/wagtail/wagtailsnippets/widgets.py
index 67e39f390b..7e4197f8ef 100644
--- a/wagtail/wagtailsnippets/widgets.py
+++ b/wagtail/wagtailsnippets/widgets.py
@@ -2,7 +2,6 @@ from __future__ import absolute_import, unicode_literals
import json
-from django.core.urlresolvers import reverse
from django.template.loader import render_to_string
from django.utils.translation import ugettext_lazy as _
@@ -11,7 +10,6 @@ from wagtail.wagtailadmin.widgets import AdminChooser
class AdminSnippetChooser(AdminChooser):
target_content_type = None
- link_to_chosen_url = "#"
def __init__(self, content_type=None, **kwargs):
if 'snippet_type_name' in kwargs:
@@ -30,11 +28,6 @@ class AdminSnippetChooser(AdminChooser):
model_class = self.target_content_type.model_class()
instance = self.get_instance(model_class, value)
- try:
- self.link_to_chosen_url = reverse('wagtailsnippets_edit', args=(self.target_content_type.app_label, self.target_content_type, instance.id,))
- except AttributeError:
- pass
-
return render_to_string("wagtailsnippets/widgets/snippet_chooser.html", {
'widget': self,
'original_field_html': original_field_html,