|
|
@@ -405,6 +405,14 @@ class IPRangeFilterSet(TenancyFilterSet, NetBoxModelFilterSet):
|
|
|
field_name='start_address',
|
|
|
lookup_expr='family'
|
|
|
)
|
|
|
+ start_address = MultiValueCharFilter(
|
|
|
+ method='filter_address',
|
|
|
+ label=_('Address'),
|
|
|
+ )
|
|
|
+ end_address = MultiValueCharFilter(
|
|
|
+ method='filter_address',
|
|
|
+ label=_('Address'),
|
|
|
+ )
|
|
|
contains = django_filters.CharFilter(
|
|
|
method='search_contains',
|
|
|
label=_('Ranges which contain this prefix or IP'),
|
|
|
@@ -461,6 +469,12 @@ class IPRangeFilterSet(TenancyFilterSet, NetBoxModelFilterSet):
|
|
|
except (AddrFormatError, ValueError):
|
|
|
return queryset.none()
|
|
|
|
|
|
+ def filter_address(self, queryset, name, value):
|
|
|
+ try:
|
|
|
+ return queryset.filter(**{f'{name}__net_in': value})
|
|
|
+ except ValidationError:
|
|
|
+ return queryset.none()
|
|
|
+
|
|
|
|
|
|
class IPAddressFilterSet(NetBoxModelFilterSet, TenancyFilterSet):
|
|
|
family = django_filters.NumberFilter(
|