Files

26 lines
849 B
Python

import django_filters
from .models import Device
from django.db.models import Q
class DeviceFilter(django_filters.FilterSet):
name = django_filters.CharFilter(lookup_expr="icontains")
mac = django_filters.CharFilter(lookup_expr="icontains")
vendor = django_filters.CharFilter(lookup_expr="icontains")
user = django_filters.CharFilter(method="filter_user_search")
def filter_user_search(self, queryset, name, value):
"""
Search across multiple user fields: first_name, last_name, id_card, mobile
"""
return queryset.filter(
Q(user__first_name__icontains=value)
| Q(user__last_name__icontains=value)
| Q(user__id_card__icontains=value)
| Q(user__mobile__icontains=value)
)
class Meta:
model = Device
fields = "__all__"