diff --git a/netbox/dcim/filters.py b/netbox/dcim/filters.py index efc71e5b4..424e99b59 100644 --- a/netbox/dcim/filters.py +++ b/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()