diff --git a/docs/release-notes/version-3.1.md b/docs/release-notes/version-3.1.md index 48129163b..3506ee458 100644 --- a/docs/release-notes/version-3.1.md +++ b/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 diff --git a/netbox/utilities/filters.py b/netbox/utilities/filters.py index fe4bae3b4..543449b73 100644 --- a/netbox/utilities/filters.py +++ b/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):