【发布时间】:2014-02-26 11:35:00
【问题描述】:
我正在使用django-rest-framework 和django-filter。我需要检索date 属性为None 的小部件列表,但无论我尝试什么查询,我都会得到空响应或完整的、未过滤的响应。
这是我定义视图集和过滤器集的方式。
class WidgetFilter(django_filters.FilterSet):
date = django_filters.DateTimeFilter(name='date', lookup_type='exact')
no_date = django_filters.DateTimefilter(name='date', lookup_type='isnull')
class Meta:
model = Widget
fields = ['date',]
class WidgetSet(viewsets.ModelViewSet):
model = Widget
filter_class = WidgetFilter
以下查询导致空的[] 响应:
?date=None
?date=0
?date=NULL
?date=False
?date=2012-05-24T11:20:06Z # a known and correct date
以下查询将返回所有对象:
?date=
?no_date=True
?no_date=False
?no_date=1
?no_date=0
非常感谢任何帮助!我一直无法找到任何有关使用日期(或将 None 作为过滤器值传递)和 django-filter 的信息,特别是通过 django-rest-framework。
如果没有更优雅的方法,这就是我的解决方法,但我仍然想知道使用django-filter 的解决方案,如果存在的话。
class WidgetSet(viewsets.ModelViewSet):
model = Widget
def get_queryset(self):
if 'no_date' in self.request.QUERY_PARAMS:
return self.model.objects.filter(date=None)
return self.model.objects.all()
【问题讨论】:
标签: django-rest-framework django-filter