summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2015-04-11 11:07:13 +0200
committerClaude Paroz <claude@2xlibre.net>2015-04-11 15:29:02 +0200
commit4e7ed8d0d3e29e21d46abe06ac244da3754c82cc (patch)
tree493b3e3528c9c8a77f4eb4799c4a6dcc005c64b0
parenta7bc00e17bebe34cdf23f744937b3c386ee73d81 (diff)
downloaddjango-4e7ed8d0d3e29e21d46abe06ac244da3754c82cc.tar.gz
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.
-rw-r--r--django/contrib/admindocs/views.py4
-rw-r--r--docs/releases/1.8.1.txt4
-rw-r--r--tests/admin_docs/tests.py14
3 files changed, 20 insertions, 2 deletions
diff --git a/django/contrib/admindocs/views.py b/django/contrib/admindocs/views.py
index 245d0cf39e..f0029c35e1 100644
--- a/django/contrib/admindocs/views.py
+++ b/django/contrib/admindocs/views.py
@@ -266,8 +266,8 @@ class ModelDetailView(BaseAdminDocsView):
# Gather related objects
for rel in opts.related_objects:
verbose = _("related `%(app_label)s.%(object_name)s` objects") % {
- 'app_label': rel.opts.app_label,
- 'object_name': rel.opts.object_name,
+ 'app_label': rel.related_model._meta.app_label,
+ 'object_name': rel.related_model._meta.object_name,
}
accessor = rel.get_accessor_name()
fields.append({
diff --git a/docs/releases/1.8.1.txt b/docs/releases/1.8.1.txt
index 5df9982a1d..9b18dea176 100644
--- a/docs/releases/1.8.1.txt
+++ b/docs/releases/1.8.1.txt
@@ -31,3 +31,7 @@ Bugfixes
* Fixed a crash with ``QuerySet.update()`` on foreign keys to one-to-one fields
(: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`).
diff --git a/tests/admin_docs/tests.py b/tests/admin_docs/tests.py
index 0881de20ee..b4f78477df 100644
--- a/tests/admin_docs/tests.py
+++ b/tests/admin_docs/tests.py
@@ -290,6 +290,20 @@ class TestModelDetailView(TestDataMixin, AdminDocsTestCase):
"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):
"""
A model with ``related_name`` of `+` should not show backward relationship