изменить набор запросов из представления в фильтре - PullRequest
0 голосов
/ 11 ноября 2019

Я хотел бы иметь поведение по умолчанию, когда queryset в представлении возвращает записи, где дата publish_at меньше некоторой даты. Я также хочу иметь логический фильтр DRF, который при значении true возвращает все записи независимо от даты публикации.

views.py:

    queryset = ProjectNews.objects.exclude(publish_at__gte=timezone.now())

filters.py:

    from django_filters import rest_framework as filters
    class ProjectNewsFilterSet(filters.FilterSet):
        not_published = filters.BooleanFilter(
                            method='show_not_published_news'
                        )
        def show_not_published(self, queryset, name, value):
            if value:
                # queryset based on queryset from view
                # does not return all the records
                return queryset.all() 
            return queryset.exclude(publish_at__gte=timezone.now())
...