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

Fixes #10111 - Wrap search QS to catch ValueError on identifier field

Daniel Sheppard 3 лет назад
Родитель
Сommit
f3906dd7c4
2 измененных файлов с 12 добавлено и 1 удалено
  1. 1 0
      docs/release-notes/version-3.3.md
  2. 11 1
      netbox/ipam/filtersets.py

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

@@ -17,6 +17,7 @@
 * [#10059](https://github.com/netbox-community/netbox/issues/10059) - Add identifier column to L2VPN table
 * [#10089](https://github.com/netbox-community/netbox/issues/10089) - `linkify` template filter should escape object representation
 * [#10108](https://github.com/netbox-community/netbox/issues/10108) - Linkify inside NAT IPs for primary device IPs in UI
+* [#10111](https://github.com/netbox-community/netbox/issues/10111) - Wrap search QS to catch ValueError on identifier field
 
 ---
 

+ 11 - 1
netbox/ipam/filtersets.py

@@ -965,7 +965,11 @@ class L2VPNFilterSet(NetBoxModelFilterSet, TenancyFilterSet):
     def search(self, queryset, name, value):
         if not value.strip():
             return queryset
-        qs_filter = Q(identifier=value) | Q(name__icontains=value) | Q(description__icontains=value)
+        qs_filter = Q(name__icontains=value) | Q(description__icontains=value)
+        try:
+            qs_filter |= Q(identifier=int(value))
+        except ValueError:
+            pass
         return queryset.filter(qs_filter)
 
 
@@ -1071,6 +1075,12 @@ class L2VPNTerminationFilterSet(NetBoxModelFilterSet):
         qs_filter = Q(l2vpn__name__icontains=value)
         return queryset.filter(qs_filter)
 
+    def filter_assigned_object(self, queryset, name, value):
+        qs = queryset.filter(
+            Q(**{'{}__in'.format(name): value})
+        )
+        return qs
+
     def filter_site(self, queryset, name, value):
         qs = queryset.filter(
             Q(