Filters for news favorites

This commit is contained in:
Kuroshini 2019-10-16 14:11:07 +03:00
parent 97f40c7ea7
commit 843230b641

View File

@ -16,6 +16,8 @@ class NewsListFilterSet(filters.FilterSet):
),
method='by_tag_group'
)
tag_value__exclude = filters.CharFilter(method='exclude_tags')
tag_value__in = filters.CharFilter(method='in_tags')
class Meta:
"""Meta class"""
@ -24,8 +26,18 @@ class NewsListFilterSet(filters.FilterSet):
'title',
'is_highlighted',
'tag_group',
'tag_value__exclude',
'tag_value__in',
)
def in_tags(self, queryset, name, value):
tags = value.split('__')
return queryset.filter(tags__value__in=tags)
def exclude_tags(self, queryset, name, value):
tags = value.split('__')
return queryset.exclude(tags__value__in=tags)
def by_tag_group(self, queryset, name, value):
if value == models.News.RECIPES_TAG_VALUE:
queryset = queryset.recipe_news()