diff --git a/CHANGELOG.md b/CHANGELOG.md index 75a9b09ff..1e8459076 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ v2.5.1 (FUTURE) * [#2676](https://github.com/digitalocean/netbox/issues/2676) - Fix exception when passing dictionary value to a ChoiceField * [#2678](https://github.com/digitalocean/netbox/issues/2678) - Fix error when viewing webhook in admin UI without write permission * [#2680](https://github.com/digitalocean/netbox/issues/2680) - Disallow POST requests to `/dcim/interface-connections/` API endpoint +* [#2684](https://github.com/digitalocean/netbox/issues/2684) - Fix custom field filtering --- diff --git a/netbox/extras/filters.py b/netbox/extras/filters.py index f3301a6cc..d0a801b48 100644 --- a/netbox/extras/filters.py +++ b/netbox/extras/filters.py @@ -31,12 +31,12 @@ class CustomFieldFilter(django_filters.Filter): # Treat 0 as None if int(value) == 0: return queryset.exclude( - custom_field_values__field__name=self.name, + custom_field_values__field__name=self.field_name, ) # Match on exact CustomFieldChoice PK else: return queryset.filter( - custom_field_values__field__name=self.name, + custom_field_values__field__name=self.field_name, custom_field_values__serialized_value=value, ) except ValueError: @@ -45,12 +45,12 @@ class CustomFieldFilter(django_filters.Filter): # Apply the assigned filter logic (exact or loose) if self.cf_type == CF_TYPE_BOOLEAN or self.filter_logic == CF_FILTER_EXACT: queryset = queryset.filter( - custom_field_values__field__name=self.name, + custom_field_values__field__name=self.field_name, custom_field_values__serialized_value=value ) else: queryset = queryset.filter( - custom_field_values__field__name=self.name, + custom_field_values__field__name=self.field_name, custom_field_values__serialized_value__icontains=value )