From 20cb13e1bbdca9b9f59cfeb8e288d8650fc34bb5 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch <jstretch@digitalocean.com> Date: Thu, 29 Mar 2018 14:47:35 -0400 Subject: [PATCH] Fixes #1975: Correct filtering logic for custom boolean fields --- netbox/extras/filters.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/netbox/extras/filters.py b/netbox/extras/filters.py index f21c228db..4a991471b 100644 --- a/netbox/extras/filters.py +++ b/netbox/extras/filters.py @@ -43,11 +43,18 @@ class CustomFieldFilter(django_filters.Filter): return queryset.none() # Apply the assigned filter logic (exact or loose) - queryset = queryset.filter(custom_field_values__field__name=self.name) if self.cf_type == CF_TYPE_BOOLEAN or self.filter_logic == CF_FILTER_EXACT: - return queryset.filter(custom_field_values__serialized_value=value) + queryset = queryset.filter( + custom_field_values__field__name=self.name, + custom_field_values__serialized_value=value + ) else: - return queryset.filter(custom_field_values__serialized_value__icontains=value) + queryset = queryset.filter( + custom_field_values__field__name=self.name, + custom_field_values__serialized_value__icontains=value + ) + + return queryset class CustomFieldFilterSet(django_filters.FilterSet):