diff --git a/netbox/ipam/filters.py b/netbox/ipam/filters.py index af31dca29..c8f87a894 100644 --- a/netbox/ipam/filters.py +++ b/netbox/ipam/filters.py @@ -167,6 +167,17 @@ class PrefixFilter(CustomFieldFilterSet, django_filters.FilterSet): model = Prefix fields = ['family', 'is_pool'] + def search(self, queryset, name, value): + if not value.strip(): + return queryset + qs_filter = Q(description__icontains=value) + try: + prefix = str(IPNetwork(value.strip()).cidr) + qs_filter |= Q(prefix__net_contains_or_equals=prefix) + except (AddrFormatError, ValueError): + pass + return queryset.filter(qs_filter) + def search_within(self, queryset, name, value): value = value.strip() if not value: