【发布时间】:2017-10-26 04:41:08
【问题描述】:
如何在 Django REST Framework 中对日期和数字进行范围过滤?其他过滤器(lt、gt 等)工作正常。我尝试了许多变体,例如:
import rest_framework_filters as filters
class OrderFilter(filters.FilterSet):
total_price__range = filters.RangeFilter(name='total_price')
created_at__range = filters.DateFromToRangeFilter(name='created_at')
....
class Meta:
model = Order
fields = {
'created_at__range': ['__all__'],
'total_price__range': ['__all__'],
...
}
class OrderViewSet(BaseViewSet, viewsets.ModelViewSet):
filter_class = OrderFilter
....
当我点击底部的“过滤器”时,在可浏览的 api 中有字段,然后 url 看起来像:
/orders/?created_at__range_0=2017-05-22&created_at__range_1=2017-05-22
它不起作用。我需要类似的东西
/orders/?created_at__range=2017-05-22,2017-05-24
与整数相同:
/orders/?total_price__range=1000,2000
它被描述为here。
我做错了什么?
【问题讨论】:
标签: django filter range django-rest-framework