使用日期范围过滤模型

时间:2015-07-28 18:42:03

标签: python django django-filter

我正在使用django_filter和django_rest_framework为我的数据创建休息终点。

我有一个模型,我想通过传递start_date和end_date作为查询参数来过滤。到目前为止,我在DateFilter模块中找到了DateRangeFilterdjango_filters个类。但我找不到任何与他们相关的文件。

以下是模型,序列化程序和视图的代码。

class Holiday(models.Model):

holiday_name = models.CharField(max_length=30)
city_name    = models.ForeignKey(City)
description  = models.CharField(max_length=100)
date         = models.DateTimeField()

def __unicode__(self):
    return u'%s %s' %(self.holiday_name, self.city_name)

class HolidaySerializer(serializers.ModelSerializer):
class Meta:
    model = Holiday
    fields = ('holiday_name', 'city_name','description', 'date')


class HolidayFilter(django_filters.FilterSet):
  class Meta:
     model = Holiday
     start_date = django_filters.DateFilter(name="date",    lookup_type='gte')
    end_date   = django_filters.DateFilter(name="date", lookup_type='lte')
    fields = ['date']


class HolidayList(generics.ListAPIView):
  queryset = Holiday.objects.all()
  serializer_class= HolidaySerializer
  filter_backends = (filters.DjangoFilterBackend,)
  filter_class = HolidayFilter

我可以将start_date和end_date作为参数传递,但它不起作用。我得到了整个查询集。

0 个答案:

没有答案