Jeremy Stretch 7 лет назад
Родитель
Сommit
ded90df01b
1 измененных файлов с 20 добавлено и 8 удалено
  1. 20 8
      netbox/dcim/filters.py

+ 20 - 8
netbox/dcim/filters.py

@@ -636,12 +636,12 @@ class InterfaceFilter(django_filters.FilterSet):
         name='tags__slug',
     )
     vlan_id = django_filters.CharFilter(
-        method='filter_vlan_by_pk',
-        name='vlan_pk',
+        method='filter_vlan_id',
+        label='Assigned VLAN'
     )
     vlan = django_filters.CharFilter(
-        method='filter_vlan_by_id',
-        name='vid',
+        method='filter_vlan',
+        label='Assigned VID'
     )
 
     class Meta:
@@ -657,11 +657,23 @@ class InterfaceFilter(django_filters.FilterSet):
         except Device.DoesNotExist:
             return queryset.none()
 
-    def filter_vlan_by_pk(self, queryset, name, value):
-        return queryset.filter(Q(untagged_vlan_id=value) | Q(tagged_vlans=value))
+    def filter_vlan_id(self, queryset, name, value):
+        value = value.strip()
+        if not value:
+            return queryset
+        return queryset.filter(
+            Q(untagged_vlan_id=value) |
+            Q(tagged_vlans=value)
+        )
 
-    def filter_vlan_by_id(self, queryset, name, value):
-        return queryset.filter(Q(untagged_vlan_id__vid=value) | Q(tagged_vlans__vid=value))
+    def filter_vlan(self, queryset, name, value):
+        value = value.strip()
+        if not value:
+            return queryset
+        return queryset.filter(
+            Q(untagged_vlan_id__vid=value) |
+            Q(tagged_vlans__vid=value)
+        )
 
     def filter_type(self, queryset, name, value):
         value = value.strip().lower()