[1.6.x] Fixed #21129 -- Prevented admin filter params modifications from throwing an exception.
Thanks Tuttle for the report.
Backport of 5381317fe3
from master
This commit is contained in:
parent
4290cc1d6e
commit
e5b0f5b95d
|
@ -306,6 +306,10 @@ class BaseModelAdmin(six.with_metaclass(RenameBaseModelAdminMethods)):
|
|||
# later.
|
||||
return True
|
||||
if hasattr(field, 'rel'):
|
||||
if field.rel is None:
|
||||
# This property or relation doesn't exist, but it's allowed
|
||||
# since it's ignored in ChangeList.get_filters().
|
||||
return True
|
||||
model = field.rel.to
|
||||
rel_name = field.rel.get_related_field().name
|
||||
elif isinstance(field, RelatedObject):
|
||||
|
|
|
@ -88,6 +88,18 @@ class ModelAdminTests(TestCase):
|
|||
form = ma.get_formset(None).form
|
||||
self.assertEqual(form._meta.fields, ['day', 'transport'])
|
||||
|
||||
def test_lookup_allowed_allows_nonexistent_lookup(self):
|
||||
"""
|
||||
Ensure that a lookup_allowed allows a parameter
|
||||
whose field lookup doesn't exist.
|
||||
Refs #21129.
|
||||
"""
|
||||
class BandAdmin(ModelAdmin):
|
||||
fields = ['name']
|
||||
|
||||
ma = BandAdmin(Band, self.site)
|
||||
self.assertTrue(ma.lookup_allowed('name__nonexistent', 'test_value'))
|
||||
|
||||
def test_field_arguments(self):
|
||||
# If we specify the fields argument, fieldsets_add and fielsets_change should
|
||||
# just stick the fields into a formsets structure and return it.
|
||||
|
|
Loading…
Reference in New Issue