python筛选时间范围_使用日期范围筛选模型

本文介绍如何在Django REST框架中利用Django Filters筛选特定日期范围内的数据。通过定义`DateFilter`并设置`lookup_type`为'gte'和'lte',筛选模型中日期字段在指定范围内的记录,但目前遇到的问题是该筛选不生效,返回了全部数据。
摘要由CSDN通过智能技术生成

我使用django_过滤器和django_rest_框架为我的数据创建rest端点。在

我有一个模型,我想通过传递起始日期和结束日期作为查询参数进行筛选。到目前为止,我已经在django_filters模块中发现了DateFilter和{}类。但我找不到任何与他们有关的文件。在

下面是模型、序列化程序和视图的代码。在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

我可以传递起始日期和结束日期作为参数,但它不起作用。我得到了整个查询集。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值