如何在Django-rest中按胆量范围过滤?

问题描述 投票:0回答:1

我想按浏览器中键入的日期范围过滤我的数据,所有其他过滤都有效。

views.py

class BookView(generics.ListAPIView):
    queryset = Book.objects.all()
    serializer_class = BookSerializers
    filter_backends = [filters.SearchFilter]
    search_fields = ['title', 'language', 'authors', 'date']
django python-3.x django-rest-framework django-filter
1个回答
0
投票

您需要创建一个新的过滤器:

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']移至新的过滤器集类别

© www.soinside.com 2019 - 2024. All rights reserved.