File tree Expand file tree Collapse file tree 1 file changed +18
-1
lines changed Expand file tree Collapse file tree 1 file changed +18
-1
lines changed Original file line number Diff line number Diff line change @@ -11,8 +11,25 @@ def get_filtering_args_from_filterset(filterset_class, type):
11
11
from ..forms .converter import convert_form_field
12
12
13
13
args = {}
14
+ model = filterset_class ._meta .model
14
15
for name , filter_field in six .iteritems (filterset_class .base_filters ):
15
- field_type = convert_form_field (filter_field .field ).Argument ()
16
+ if name in filterset_class .declared_filters :
17
+ form_field = filter_field .field
18
+ else :
19
+ field_name = name .split ("__" , 1 )[0 ]
20
+ model_field = model ._meta .get_field (field_name )
21
+
22
+ if hasattr (model_field , "formfield" ):
23
+ form_field = model_field .formfield (
24
+ required = filter_field .extra .get ("required" , False )
25
+ )
26
+
27
+ # Fallback to field defined on filter if we can't get it from the
28
+ # model field
29
+ if not form_field :
30
+ form_field = filter_field .field
31
+
32
+ field_type = convert_form_field (form_field ).Argument ()
16
33
field_type .description = filter_field .label
17
34
args [name ] = field_type
18
35
You can’t perform that action at this time.
0 commit comments