Как отфильтровать по диапазону дат в django-rest? - PullRequest
0 голосов
/ 09 ноября 2019

Я бы хотел отфильтровать данные по диапазону дат, набранному в браузере, все остальные фильтры работают.

views.py

class BookView(generics.ListAPIView):
    queryset = Book.objects.all()
    serializer_class = BookSerializers
    filter_backends = [filters.SearchFilter]
    search_fields = ['title', 'language', 'authors', 'date']

1 Ответ

0 голосов
/ 09 ноября 2019

Вам необходимо создать новый фильтр:

class StatementItemFilter(filters.FilterSet):
    date_between = filters.DateFromToRangeFilter(field_name="MODEL_FIELD_NAME", label="Date (Between)")

    class Meta:
        model = StatementItem
        fields = [
            ...
            "date_between"
        ]

и использовать его в вашем наборе

class MODELItemViewSet(viewsets.ReadOnlyModelViewSet):
    filter_backends = (DjangoFilterBackend,)
    filterset_class = StatementItemFilter
    ...

Переместить ваш список ['title', 'language', 'authors', 'date'] в новый класс набора фильтров

...