Я хотел бы иметь поведение по умолчанию, когда 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())