Files
sarlink-portal-api/devices/filters.py
i701 708d7c2bec
All checks were successful
Build and Push Docker Images / Build and Push Docker Images (push) Successful in 4m44s
refactor(filters): Enhance user filtering in DeviceFilter to search across multiple user fields 🔨
2025-06-30 22:40:13 +05:00

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__"