diff options
| author | Simon Charette <charette.s@gmail.com> | 2014-08-21 11:55:23 -0400 |
|---|---|---|
| committer | Simon Charette <charette.s@gmail.com> | 2014-08-27 22:12:37 -0400 |
| commit | 4685026840f0e2b895f980b6a33ad1b282aa7852 (patch) | |
| tree | 3f2e5900bfccaf23c7ef2ea7ddc3438cdca38a20 /tests/regressiontests | |
| parent | 8adc56ca78fa362dc59de81b641e6d65b6abf289 (diff) | |
[1.4.x] Fixed #23329 -- Allowed inherited and m2m fields to be referenced in the admin.
Thanks to Trac alias Markush2010 and ross for the detailed reports.
Backport of 3cbb759 from master
Diffstat (limited to 'tests/regressiontests')
| -rw-r--r-- | tests/regressiontests/admin_views/admin.py | 5 | ||||
| -rw-r--r-- | tests/regressiontests/admin_views/models.py | 18 | ||||
| -rw-r--r-- | tests/regressiontests/admin_views/tests.py | 9 |
3 files changed, 31 insertions, 1 deletions
diff --git a/tests/regressiontests/admin_views/admin.py b/tests/regressiontests/admin_views/admin.py index 3369c557b7..04410dd0bc 100644 --- a/tests/regressiontests/admin_views/admin.py +++ b/tests/regressiontests/admin_views/admin.py @@ -27,7 +27,7 @@ from .models import (Article, Chapter, Account, Media, Child, Parent, Picture, Album, Question, Answer, ComplexSortedPerson, PrePopulatedPostLargeSlug, AdminOrderedField, AdminOrderedModelMethod, AdminOrderedAdminMethod, AdminOrderedCallable, Report, Color2, UnorderedObject, MainPrepopulated, - RelatedPrepopulated) + RelatedPrepopulated, ReferencedByParent, ChildOfReferer, M2MReference) def callable_year(dt_value): @@ -616,6 +616,9 @@ site.register(OtherStory, OtherStoryAdmin) site.register(Report, ReportAdmin) site.register(MainPrepopulated, MainPrepopulatedAdmin) site.register(UnorderedObject, UnorderedObjectAdmin) +site.register(ReferencedByParent) +site.register(ChildOfReferer) +site.register(M2MReference) # We intentionally register Promo and ChapterXtra1 but not Chapter nor ChapterXtra2. # That way we cover all four cases: diff --git a/tests/regressiontests/admin_views/models.py b/tests/regressiontests/admin_views/models.py index e158e07603..6380abd0a9 100644 --- a/tests/regressiontests/admin_views/models.py +++ b/tests/regressiontests/admin_views/models.py @@ -607,3 +607,21 @@ class UnorderedObject(models.Model): """ name = models.CharField(max_length=255) bool = models.BooleanField(default=True) + + +# Models for #23329 +class ReferencedByParent(models.Model): + pass + + +class ParentWithFK(models.Model): + fk = models.ForeignKey(ReferencedByParent) + + +class ChildOfReferer(ParentWithFK): + pass + + +class M2MReference(models.Model): + ref = models.ManyToManyField('self') + diff --git a/tests/regressiontests/admin_views/tests.py b/tests/regressiontests/admin_views/tests.py index c40f009177..9c3cf234bc 100644 --- a/tests/regressiontests/admin_views/tests.py +++ b/tests/regressiontests/admin_views/tests.py @@ -586,6 +586,15 @@ class AdminViewBasicTest(TestCase): response = self.client.get("/test_admin/admin/admin_views/section/", {TO_FIELD_VAR: 'id'}) self.assertEqual(response.status_code, 200) + # Specifying a field referenced by another model though a m2m should be allowed. + response = self.client.get("/test_admin/admin/admin_views/m2mreference/", {TO_FIELD_VAR: 'id'}) + self.assertEqual(response.status_code, 200) + + # 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'}) + self.assertEqual(response.status_code, 200) + def test_allowed_filtering_15103(self): """ Regressions test for ticket 15103 - filtering on fields defined in a |
