【问题标题】:How to filter by date range in django-rest?如何在 django-rest 中按日期范围过滤?
【发布时间】:2020-03-05 22:05:17
【问题描述】:

我想按在浏览器中输入的日期范围过滤我的数据,所有其他过滤都正常工作。

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】:

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

    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'] 移动到您的新过滤器集类

    【讨论】:

      猜你喜欢
      • 2020-03-09
      • 2019-03-10
      • 2014-09-04
      • 1970-01-01
      • 2011-06-07
      • 2015-05-12
      • 1970-01-01
      • 2010-12-12
      • 2022-07-07
      相关资源
      最近更新 更多