only override declared filters with in lookup

This commit is contained in:
DonQueso89 2021-01-29 14:25:51 +01:00
parent 5dea6ffa41
commit a107c29566

View File

@ -79,22 +79,23 @@ def replace_csv_filters(filterset_class):
""" """
for name, filter_field in list(filterset_class.base_filters.items()): for name, filter_field in list(filterset_class.base_filters.items()):
filter_type = filter_field.lookup_expr filter_type = filter_field.lookup_expr
if filter_type in {"in", "contains", "overlap"}: if name not in filterset_class.declared_filters:
filterset_class.base_filters[name] = InFilter( if filter_type in {"in", "contains", "overlap"}:
field_name=filter_field.field_name, filterset_class.base_filters[name] = InFilter(
lookup_expr=filter_field.lookup_expr, field_name=filter_field.field_name,
label=filter_field.label, lookup_expr=filter_field.lookup_expr,
method=filter_field.method, label=filter_field.label,
exclude=filter_field.exclude, method=filter_field.method,
**filter_field.extra exclude=filter_field.exclude,
) **filter_field.extra
)
elif filter_type == "range": elif filter_type == "range":
filterset_class.base_filters[name] = RangeFilter( filterset_class.base_filters[name] = RangeFilter(
field_name=filter_field.field_name, field_name=filter_field.field_name,
lookup_expr=filter_field.lookup_expr, lookup_expr=filter_field.lookup_expr,
label=filter_field.label, label=filter_field.label,
method=filter_field.method, method=filter_field.method,
exclude=filter_field.exclude, exclude=filter_field.exclude,
**filter_field.extra **filter_field.extra
) )