gault-millau/apps/establishment/filters.py
2019-08-30 17:25:07 +03:00

29 lines
823 B
Python

"""Establishment app filters."""
from django.core.validators import EMPTY_VALUES
from django_filters import rest_framework as filters
from establishment import models
class EstablishmentFilter(filters.FilterSet):
"""Establishment filterset."""
tag_id = filters.NumberFilter(field_name='tags__metadata__id',)
award_id = filters.NumberFilter(field_name='awards__id',)
search = filters.CharFilter(method='search_text')
class Meta:
"""Meta class."""
model = models.Establishment
fields = (
'tag_id',
'award_id',
'search',
)
def search_text(self, queryset, name, value):
"""Search text."""
if value not in EMPTY_VALUES:
return queryset.search(value, locale=self.request.locale)
return queryset