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):