From 843230b6415fa52ff3c432b04aded4779b64e116 Mon Sep 17 00:00:00 2001 From: Kuroshini Date: Wed, 16 Oct 2019 14:11:07 +0300 Subject: [PATCH] Filters for news favorites --- apps/news/filters.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/apps/news/filters.py b/apps/news/filters.py index 084c570f..2621f3bf 100644 --- a/apps/news/filters.py +++ b/apps/news/filters.py @@ -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()