[1.8.x] Fixed #24624 -- Replaced obsoleted rel.opts in admindocs view

Thanks Scott Sanders for the report, and Markus Holtermann and
Tim Graham for the reviews. Refs #24381.
Backport of 4e7ed8d0d from master.
This commit is contained in:
Claude Paroz 2015-04-11 11:07:13 +02:00
parent 190afb8618
commit 774d09a7dd
3 changed files with 20 additions and 2 deletions

View File

@ -266,8 +266,8 @@ class ModelDetailView(BaseAdminDocsView):
# Gather related objects # Gather related objects
for rel in opts.related_objects: for rel in opts.related_objects:
verbose = _("related `%(app_label)s.%(object_name)s` objects") % { verbose = _("related `%(app_label)s.%(object_name)s` objects") % {
'app_label': rel.opts.app_label, 'app_label': rel.related_model._meta.app_label,
'object_name': rel.opts.object_name, 'object_name': rel.related_model._meta.object_name,
} }
accessor = rel.get_accessor_name() accessor = rel.get_accessor_name()
fields.append({ fields.append({

View File

@ -31,3 +31,7 @@ Bugfixes
* Fixed a crash with ``QuerySet.update()`` on foreign keys to one-to-one fields * Fixed a crash with ``QuerySet.update()`` on foreign keys to one-to-one fields
(:ticket:`24578`). (:ticket:`24578`).
* Fixed a regression in the model detail view of
:mod:`~django.contrib.admindocs` when a model has a reverse foreign key
relation (:ticket:`24624`).

View File

@ -280,6 +280,20 @@ class TestModelDetailView(AdminDocsTestCase):
"all related %s objects" % (link % ("admin_docs.group", "admin_docs.Group")) "all related %s objects" % (link % ("admin_docs.group", "admin_docs.Group"))
) )
def test_model_with_many_to_one(self):
link = '<a class="reference external" href="/admindocs/models/%s/">%s</a>'
response = self.client.get(
reverse('django-admindocs-models-detail', args=['admin_docs', 'company'])
)
self.assertContains(
response,
"number of related %s objects" % (link % ("admin_docs.person", "admin_docs.Person"))
)
self.assertContains(
response,
"all related %s objects" % (link % ("admin_docs.person", "admin_docs.Person"))
)
def test_model_with_no_backward_relations_render_only_relevant_fields(self): def test_model_with_no_backward_relations_render_only_relevant_fields(self):
""" """
A model with ``related_name`` of `+` should not show backward relationship A model with ``related_name`` of `+` should not show backward relationship