gault-millau/apps/news/filters.py

29 lines
733 B
Python

"""Filters from application News"""
import django_filters
from news import models
class NewsListFilterSet(django_filters.FilterSet):
"""FilterSet for News list"""
is_highlighted = django_filters.BooleanFilter()
title = django_filters.CharFilter(method='by_title')
class Meta:
"""Meta class"""
model = models.News
fields = (
'title',
'is_highlighted',
)
def by_title(self, queryset, name, value):
"""Crappy search by title according to locale"""
if value:
locale = self.request.locale
filters = {f'{name}__{locale}': value}
return queryset.filter(**filters)
else:
return queryset