Просмотр исходного кода

Fixes #7690: Fix custom field integer support for MultiValueNumberFilter

jeremystretch 4 лет назад
Родитель
Сommit
ee6e2e0af1
2 измененных файлов с 6 добавлено и 4 удалено
  1. 1 0
      docs/release-notes/version-3.1.md
  2. 5 4
      netbox/utilities/filters.py

+ 1 - 0
docs/release-notes/version-3.1.md

@@ -6,6 +6,7 @@
 
 * [#5869](https://github.com/netbox-community/netbox/issues/5869) - Fix permissions evaluation under available prefix/IP REST API endpoints
 * [#7519](https://github.com/netbox-community/netbox/issues/7519) - Return a 409 status for unfulfillable available prefix/IP requests
+* [#7690](https://github.com/netbox-community/netbox/issues/7690) - Fix custom field integer support for MultiValueNumberFilter
 * [#7990](https://github.com/netbox-community/netbox/issues/7990) - Fix `title` display on contact detail view
 * [#7996](https://github.com/netbox-community/netbox/issues/7996) - Show WWN field in interface creation form
 * [#8001](https://github.com/netbox-community/netbox/issues/8001) - Correct verbose name for wireless LAN group model

+ 5 - 4
netbox/utilities/filters.py

@@ -17,9 +17,10 @@ def multivalue_field_factory(field_class):
         def to_python(self, value):
             if not value:
                 return []
+            field = field_class()
             return [
                 # Only append non-empty values (this avoids e.g. trying to cast '' as an integer)
-                super(field_class, self).to_python(v) for v in value if v
+                field.to_python(v) for v in value if v
             ]
 
     return type('MultiValue{}'.format(field_class.__name__), (NewField,), dict())
@@ -50,15 +51,15 @@ class MultiValueTimeFilter(django_filters.MultipleChoiceFilter):
 
 
 class MACAddressFilter(django_filters.CharFilter):
-    field_class = MACAddressField
+    pass
 
 
 class MultiValueMACAddressFilter(django_filters.MultipleChoiceFilter):
-    field_class = multivalue_field_factory(MACAddressField)
+    field_class = multivalue_field_factory(forms.CharField)
 
 
 class MultiValueWWNFilter(django_filters.MultipleChoiceFilter):
-    field_class = multivalue_field_factory(MACAddressField)
+    field_class = multivalue_field_factory(forms.CharField)
 
 
 class TreeNodeMultipleChoiceFilter(django_filters.ModelMultipleChoiceFilter):