diff options
| author | Paulo <commonzenpython@gmail.com> | 2017-06-04 14:10:48 -0400 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2017-06-05 10:29:54 -0400 |
| commit | b7f99f84bcc4a06114ac31174840efab0aef7602 (patch) | |
| tree | ddf8ccdc8e6c5227a16d03d5bd8d72f167cff7df /tests/admin_views | |
| parent | a0f8c52ae2a9ac211742b4dd7b7e9777040b076c (diff) | |
Fixed #28262 -- Fixed incorrect DisallowedModelAdminLookup when a nested reverse relation is in list_filter.
Diffstat (limited to 'tests/admin_views')
| -rw-r--r-- | tests/admin_views/admin.py | 15 | ||||
| -rw-r--r-- | tests/admin_views/models.py | 2 | ||||
| -rw-r--r-- | tests/admin_views/tests.py | 5 |
3 files changed, 16 insertions, 6 deletions
diff --git a/tests/admin_views/admin.py b/tests/admin_views/admin.py index 24e6039f80..7c3190574c 100644 --- a/tests/admin_views/admin.py +++ b/tests/admin_views/admin.py @@ -79,12 +79,15 @@ class ChapterInline(admin.TabularInline): class ChapterXtra1Admin(admin.ModelAdmin): - list_filter = ('chap', - 'chap__title', - 'chap__book', - 'chap__book__name', - 'chap__book__promo', - 'chap__book__promo__name',) + list_filter = ( + 'chap', + 'chap__title', + 'chap__book', + 'chap__book__name', + 'chap__book__promo', + 'chap__book__promo__name', + 'guest_author__promo__book', + ) class ArticleAdmin(admin.ModelAdmin): diff --git a/tests/admin_views/models.py b/tests/admin_views/models.py index ea8fc18b5c..2dd7f5efd3 100644 --- a/tests/admin_views/models.py +++ b/tests/admin_views/models.py @@ -69,6 +69,7 @@ class Book(models.Model): class Promo(models.Model): name = models.CharField(max_length=100, verbose_name='¿Name?') book = models.ForeignKey(Book, models.CASCADE) + author = models.ForeignKey(User, models.SET_NULL, blank=True, null=True) def __str__(self): return self.name @@ -90,6 +91,7 @@ class Chapter(models.Model): class ChapterXtra1(models.Model): chap = models.OneToOneField(Chapter, models.CASCADE, verbose_name='¿Chap?') xtra = models.CharField(max_length=100, verbose_name='¿Xtra?') + guest_author = models.ForeignKey(User, models.SET_NULL, blank=True, null=True) def __str__(self): return '¿Xtra1: %s' % self.xtra diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py index 88aadbb399..2f52bd9925 100644 --- a/tests/admin_views/tests.py +++ b/tests/admin_views/tests.py @@ -609,6 +609,11 @@ class AdminViewBasicTest(AdminViewBasicTestCase): 'values': [p.name for p in Promo.objects.all()], 'test': lambda obj, value: obj.chap.book.promo_set.filter(name=value).exists(), }, + # A forward relation (book) after a reverse relation (promo). + 'guest_author__promo__book__id__exact': { + 'values': [p.id for p in Book.objects.all()], + 'test': lambda obj, value: obj.guest_author.promo_set.filter(book=value).exists(), + }, } for filter_path, params in filters.items(): for value in params['values']: |
