import django_filters from django.db.models import Q from netbox.filtersets import NetBoxModelFilterSet from utilities.filtersets import register_filterset from .models import Service, ServiceTemplate @register_filterset class ServiceTemplateFilterSet(NetBoxModelFilterSet): class Meta: model = ServiceTemplate fields = ("id", "name", "status") def search(self, queryset, name, value): if not value.strip(): return queryset return queryset.filter( Q(name__icontains=value) | Q(description__icontains=value), ) @register_filterset class ServiceFilterSet(NetBoxModelFilterSet): service_template = django_filters.ModelMultipleChoiceFilter( field_name="service_template", queryset=ServiceTemplate.objects.all(), ) class Meta: model = Service fields = ("id", "name", "status", "service_template", "tenant") def search(self, queryset, name, value): if not value.strip(): return queryset return queryset.filter( Q(name__icontains=value) | Q(description__icontains=value), )