From a107c295662114f2844124e243a4998ecf5005e9 Mon Sep 17 00:00:00 2001 From: DonQueso89 Date: Fri, 29 Jan 2021 14:25:51 +0100 Subject: [PATCH] only override declared filters with in lookup --- graphene_django/filter/utils.py | 37 +++++++++++++++++---------------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/graphene_django/filter/utils.py b/graphene_django/filter/utils.py index 4530599..013ee21 100644 --- a/graphene_django/filter/utils.py +++ b/graphene_django/filter/utils.py @@ -79,22 +79,23 @@ def replace_csv_filters(filterset_class): """ for name, filter_field in list(filterset_class.base_filters.items()): filter_type = filter_field.lookup_expr - if filter_type in {"in", "contains", "overlap"}: - filterset_class.base_filters[name] = InFilter( - field_name=filter_field.field_name, - lookup_expr=filter_field.lookup_expr, - label=filter_field.label, - method=filter_field.method, - exclude=filter_field.exclude, - **filter_field.extra - ) + if name not in filterset_class.declared_filters: + if filter_type in {"in", "contains", "overlap"}: + filterset_class.base_filters[name] = InFilter( + field_name=filter_field.field_name, + lookup_expr=filter_field.lookup_expr, + label=filter_field.label, + method=filter_field.method, + exclude=filter_field.exclude, + **filter_field.extra + ) - elif filter_type == "range": - filterset_class.base_filters[name] = RangeFilter( - field_name=filter_field.field_name, - lookup_expr=filter_field.lookup_expr, - label=filter_field.label, - method=filter_field.method, - exclude=filter_field.exclude, - **filter_field.extra - ) + elif filter_type == "range": + filterset_class.base_filters[name] = RangeFilter( + field_name=filter_field.field_name, + lookup_expr=filter_field.lookup_expr, + label=filter_field.label, + method=filter_field.method, + exclude=filter_field.exclude, + **filter_field.extra + )