import django_filters from django.utils.translation import gettext_lazy as _ from .models import Member class MemberFilter(django_filters.FilterSet): user__first_name = django_filters.CharFilter(field_name="user__first_name", label=_("First name"), lookup_expr="icontains") user__last_name = django_filters.CharFilter(field_name="user__last_name", label=_("Last name"), lookup_expr="icontains") license = django_filters.CharFilter(label=_("License"), lookup_expr="icontains") user__is_active = django_filters.TypedChoiceFilter( field_name='user__is_active', label=_("Active?"), initial="true", choices=( ('', 'All'), ('true', 'Yes'), ('false', 'No'), ), coerce=lambda x: x.lower() == 'true' ) class Meta: model = Member fields = ["user__first_name", "user__last_name", "license", "user__is_active"]