From c5c4bfa12aa0e8d4e8b46d77b6159f59330c3313 Mon Sep 17 00:00:00 2001 From: Emmanuelle Delescolle Date: Sun, 5 Oct 2014 20:06:51 +0200 Subject: [1.6.x] Fixed #23604 -- Allowed related m2m fields to be references in the admin. Thanks Simon Charette for review. Backport of a24cf21722 from master --- tests/admin_views/admin.py | 3 ++- tests/admin_views/models.py | 9 +++++++++ tests/admin_views/tests.py | 4 ++++ 3 files changed, 15 insertions(+), 1 deletion(-) (limited to 'tests/admin_views') diff --git a/tests/admin_views/admin.py b/tests/admin_views/admin.py index 62ea8f889b..ca8a9fdbf6 100644 --- a/tests/admin_views/admin.py +++ b/tests/admin_views/admin.py @@ -31,7 +31,7 @@ from .models import (Article, Chapter, Account, Media, Child, Parent, Picture, AdminOrderedCallable, Report, Color2, UnorderedObject, MainPrepopulated, RelatedPrepopulated, UndeletableObject, UserMessenger, Simple, Choice, ShortMessage, Telegram, ReferencedByParent, ChildOfReferer, M2MReference, - ReferencedByInline, InlineReference, InlineReferer) + ReferencedByInline, InlineReference, InlineReferer, Ingredient) def callable_year(dt_value): @@ -789,6 +789,7 @@ site.register(Color2, CustomTemplateFilterColorAdmin) site.register(Simple, AttributeErrorRaisingAdmin) site.register(UserMessenger, MessageTestingAdmin) site.register(Choice, ChoiceList) +site.register(Ingredient) # Register core models we need in our tests from django.contrib.auth.models import User, Group diff --git a/tests/admin_views/models.py b/tests/admin_views/models.py index 91b4aa7f1d..7b8af6f8d2 100644 --- a/tests/admin_views/models.py +++ b/tests/admin_views/models.py @@ -716,3 +716,12 @@ class InlineReference(models.Model): class InlineReferer(models.Model): refs = models.ManyToManyField(InlineReference) + +# Models for #23604 +class Recipe(models.Model): + name = models.CharField(max_length=20) + + +class Ingredient(models.Model): + name = models.CharField(max_length=20) + recipes = models.ManyToManyField('Recipe', related_name='ingredients') diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py index 01a2288739..3913baa63f 100644 --- a/tests/admin_views/tests.py +++ b/tests/admin_views/tests.py @@ -599,6 +599,10 @@ class AdminViewBasicTest(AdminViewBasicTestCase): response = self.client.get("/test_admin/admin/admin_views/m2mreference/", {TO_FIELD_VAR: 'id'}) self.assertEqual(response.status_code, 200) + # #23604 - Specifying the pk of this model should be allowed when this model defines a m2m relationship + response = self.client.get("/test_admin/admin/admin_views/ingredient/", {TO_FIELD_VAR: 'id'}) + self.assertEqual(response.status_code, 200) + # #23329 - Specifying a field that is not refered by any other model directly registered # to this admin site but registered through inheritance should be allowed. response = self.client.get("/test_admin/admin/admin_views/referencedbyparent/", {TO_FIELD_VAR: 'id'}) -- cgit v1.3