summaryrefslogtreecommitdiff
path: root/tests/admin_filters
diff options
context:
space:
mode:
authorAndrey Kuzmin <jack.cvr@gmail.com>2015-10-25 22:15:37 +0200
committerTim Graham <timograham@gmail.com>2015-11-12 19:50:54 -0500
commit815f4d206dfea41bdff167283c2cac43a71524ac (patch)
treeb48d53496c534c87139cb8d9f34d9670d7710a2f /tests/admin_filters
parent7624fdb9f8ea4cbff407436606998f572898038b (diff)
downloaddjango-815f4d206dfea41bdff167283c2cac43a71524ac.tar.gz
Fixed #25606 -- Added support for "__" lookup in RelatedOnlyFieldList
Diffstat (limited to 'tests/admin_filters')
-rw-r--r--tests/admin_filters/models.py6
-rw-r--r--tests/admin_filters/tests.py21
2 files changed, 27 insertions, 0 deletions
diff --git a/tests/admin_filters/models.py b/tests/admin_filters/models.py
index 40f25d2f30..db37958882 100644
--- a/tests/admin_filters/models.py
+++ b/tests/admin_filters/models.py
@@ -26,6 +26,12 @@ class Book(models.Model):
related_name='books_contributed',
blank=True,
)
+ employee = models.ForeignKey(
+ 'Employee',
+ models.SET_NULL,
+ verbose_name='Employee',
+ blank=True, null=True,
+ )
is_best_seller = models.NullBooleanField(default=0)
date_registered = models.DateField(null=True)
# This field name is intentionally 2 characters long (#16080).
diff --git a/tests/admin_filters/tests.py b/tests/admin_filters/tests.py
index f1756a3c64..11f81fc3ed 100644
--- a/tests/admin_filters/tests.py
+++ b/tests/admin_filters/tests.py
@@ -169,6 +169,7 @@ class BookAdminRelatedOnlyFilter(ModelAdmin):
'year', 'is_best_seller', 'date_registered', 'no',
('author', RelatedOnlyFieldListFilter),
('contributors', RelatedOnlyFieldListFilter),
+ ('employee__department', RelatedOnlyFieldListFilter),
)
ordering = ('-id',)
@@ -580,6 +581,26 @@ class ListFiltersTests(TestCase):
expected = [(self.alfred.pk, 'alfred'), (self.bob.pk, 'bob')]
self.assertEqual(sorted(filterspec.lookup_choices), sorted(expected))
+ def test_relatedonlyfieldlistfilter_underscorelookup_foreignkey(self):
+ Department.objects.create(code='TEST', description='Testing')
+ self.djangonaut_book.employee = self.john
+ self.djangonaut_book.save()
+ self.bio_book.employee = self.jack
+ self.bio_book.save()
+
+ modeladmin = BookAdminRelatedOnlyFilter(Book, site)
+ request = self.request_factory.get('/')
+ changelist = self.get_changelist(request, Book, modeladmin)
+
+ # Only actual departments should be present in employee__department's
+ # list filter.
+ filterspec = changelist.get_filters(request)[0][6]
+ expected = [
+ (self.dev.code, str(self.dev)),
+ (self.design.code, str(self.design)),
+ ]
+ self.assertEqual(sorted(filterspec.lookup_choices), sorted(expected))
+
def test_relatedonlyfieldlistfilter_manytomany(self):
modeladmin = BookAdminRelatedOnlyFilter(Book, site)