summaryrefslogtreecommitdiff
path: root/tests/admin_views
diff options
context:
space:
mode:
authorPaulo <commonzenpython@gmail.com>2017-06-04 14:10:48 -0400
committerTim Graham <timograham@gmail.com>2017-06-05 10:29:54 -0400
commitb7f99f84bcc4a06114ac31174840efab0aef7602 (patch)
treeddf8ccdc8e6c5227a16d03d5bd8d72f167cff7df /tests/admin_views
parenta0f8c52ae2a9ac211742b4dd7b7e9777040b076c (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.py15
-rw-r--r--tests/admin_views/models.py2
-rw-r--r--tests/admin_views/tests.py5
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']: