Loading django/contrib/admin/options.py +4 −0 Original line number Diff line number Diff line Loading @@ -348,6 +348,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): Loading tests/modeladmin/tests.py +12 −0 Original line number Diff line number Diff line Loading @@ -95,6 +95,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 Loading
django/contrib/admin/options.py +4 −0 Original line number Diff line number Diff line Loading @@ -348,6 +348,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): Loading
tests/modeladmin/tests.py +12 −0 Original line number Diff line number Diff line Loading @@ -95,6 +95,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