2
0
Эх сурвалжийг харах

Fixes #11544: Catch ValidationError exception when filtering by invalid MAC address

jeremystretch 3 жил өмнө
parent
commit
cc350165dd

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

@@ -32,6 +32,7 @@
 * [#11497](https://github.com/netbox-community/netbox/issues/11497) - Enforce `run_script` permission when executing scripts via REST API
 * [#11497](https://github.com/netbox-community/netbox/issues/11497) - Enforce `run_script` permission when executing scripts via REST API
 * [#11516](https://github.com/netbox-community/netbox/issues/11516) - Prevent text highlight utility from interpreting match as regex
 * [#11516](https://github.com/netbox-community/netbox/issues/11516) - Prevent text highlight utility from interpreting match as regex
 * [#11522](https://github.com/netbox-community/netbox/issues/11522) - Correct tag links under contact & tenant list views
 * [#11522](https://github.com/netbox-community/netbox/issues/11522) - Correct tag links under contact & tenant list views
+* [#11544](https://github.com/netbox-community/netbox/issues/11544) - Catch ValidationError exception when filtering by invalid MAC address
 
 
 ---
 ---
 
 

+ 7 - 0
netbox/utilities/filters.py

@@ -1,6 +1,7 @@
 import django_filters
 import django_filters
 from django import forms
 from django import forms
 from django.conf import settings
 from django.conf import settings
+from django.core.exceptions import ValidationError
 from django_filters.constants import EMPTY_VALUES
 from django_filters.constants import EMPTY_VALUES
 
 
 
 
@@ -67,6 +68,12 @@ class MACAddressFilter(django_filters.CharFilter):
 class MultiValueMACAddressFilter(django_filters.MultipleChoiceFilter):
 class MultiValueMACAddressFilter(django_filters.MultipleChoiceFilter):
     field_class = multivalue_field_factory(forms.CharField)
     field_class = multivalue_field_factory(forms.CharField)
 
 
+    def filter(self, qs, value):
+        try:
+            return super().filter(qs, value)
+        except ValidationError:
+            return qs.none()
+
 
 
 class MultiValueWWNFilter(django_filters.MultipleChoiceFilter):
 class MultiValueWWNFilter(django_filters.MultipleChoiceFilter):
     field_class = multivalue_field_factory(forms.CharField)
     field_class = multivalue_field_factory(forms.CharField)