소스 검색

Fixes #1975: Correct filtering logic for custom boolean fields

Jeremy Stretch 8 년 전
부모
커밋
20cb13e1bb
1개의 변경된 파일10개의 추가작업 그리고 3개의 파일을 삭제
  1. 10 3
      netbox/extras/filters.py

+ 10 - 3
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):