From 6df76ae870c424b144646423c8d67aef1fdd3b69 Mon Sep 17 00:00:00 2001 From: Brian Tiemann Date: Thu, 3 Oct 2024 07:29:05 -0400 Subject: [PATCH] Only remove extraneous attributes from extra if changing to a BooleanField --- netbox/netbox/filtersets.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/netbox/netbox/filtersets.py b/netbox/netbox/filtersets.py index e3bd33298..41a22859d 100644 --- a/netbox/netbox/filtersets.py +++ b/netbox/netbox/filtersets.py @@ -180,9 +180,11 @@ class BaseFilterSet(django_filters.FilterSet): # create the new filter with the same type because there is no guarantee the defined type # is the same as the default type for the field resolve_field(field, lookup_expr) # Will raise FieldLookupError if the lookup is invalid - for field_to_remove in ('choices', 'null_value'): - existing_filter_extra.pop(field_to_remove, None) - filter_cls = django_filters.BooleanFilter if lookup_expr == 'empty' else type(existing_filter) + filter_cls = type(existing_filter) + if lookup_expr == 'empty': + filter_cls = django_filters.BooleanFilter + for field_to_remove in ('choices', 'null_value'): + existing_filter_extra.pop(field_to_remove, None) new_filter = filter_cls( field_name=field_name, lookup_expr=lookup_expr,