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):
1111 from ..forms .converter import convert_form_field
1212
1313 args = {}
14+ model = filterset_class ._meta .model
1415 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 ()
1633 field_type .description = filter_field .label
1734 args [name ] = field_type
1835
You can’t perform that action at this time.
0 commit comments