File tree Expand file tree Collapse file tree 2 files changed +29
-1
lines changed
Expand file tree Collapse file tree 2 files changed +29
-1
lines changed Original file line number Diff line number Diff line change @@ -141,7 +141,11 @@ def get_fields(cls):
141141 for name , lookups in fields .items ():
142142 if lookups == filters .ALL_LOOKUPS :
143143 field = get_model_field (cls ._meta .model , name )
144- fields [name ] = utils .lookups_for_field (field )
144+ if field is not None :
145+ fields [name ] = utils .lookups_for_field (field )
146+ else :
147+ # FilterSet will handle invalid name
148+ fields [name ] = []
145149
146150 return fields
147151
Original file line number Diff line number Diff line change 11import sys
2+ import unittest
23import warnings
34
5+ import django_filters
46from django .test import TestCase
57from django_filters .filters import BaseInFilter
68from rest_framework .test import APIRequestFactory
@@ -134,6 +136,28 @@ class Meta:
134136 'pk' : filters .NumberFilter ,
135137 })
136138
139+ @unittest .skipIf (django_filters .VERSION < (2 , 2 ), 'requires django-filter 2.2' )
140+ def test_autofilter_invalid_field (self ):
141+ msg = "'Meta.fields' must not contain non-model field names: xyz"
142+ with self .assertRaisesMessage (TypeError , msg ):
143+ class F (FilterSet ):
144+ pk = filters .AutoFilter (field_name = 'xyz' , lookups = ['exact' ])
145+
146+ class Meta :
147+ model = Note
148+ fields = []
149+
150+ @unittest .skipIf (django_filters .VERSION < (2 , 2 ), 'requires django-filter 2.2' )
151+ def test_all_lookups_invalid_field (self ):
152+ msg = "'Meta.fields' must not contain non-model field names: xyz"
153+ with self .assertRaisesMessage (TypeError , msg ):
154+ class F (FilterSet ):
155+ class Meta :
156+ model = Note
157+ fields = {
158+ 'xyz' : '__all__' ,
159+ }
160+
137161 def test_relatedfilter_doesnt_expand_declared (self ):
138162 # See: https://github.com/philipn/django-rest-framework-filters/issues/234
139163 class F (FilterSet ):
You can’t perform that action at this time.
0 commit comments