如何在 Django 中按日期范围过滤请求对象?

How do I filter requests objects by date range in Django?

提问人:pipka2 提问时间:10/11/2023 更新时间:10/11/2023 访问量:44

问:

我有一个循环函数,如下所示:

saved_date = request.GET.get('date')
start_date = request.GET.get('start_date')
end_date = request.GET.get('end_date')

if saved_date is not None:
   queryset = Contact.objects.filter(
       createdAt__istartswith=saved_date).values_list('phone', flat=True)
elif start_date and end_date is not None:
   queryset = Contact.objects.filter(
       createdAt__range=[start_date, end_date]).values_list('phone', flat=True)

因此,我需要按日期范围(包括结束日期)过滤对象。 如何过滤日期介于 start_dateend_date 之间的所有对象?

python django 日期时间 python-requests

评论

0赞 willeM_ Van Onsem 10/11/2023
你能分享你使用的模型和 HTML/Django 表单吗?

答:

0赞 Mahammadhusain kadiwala 10/11/2023 #1

如果您已在联系人模型中将 createdAt 作为 DateTimeField ,请尝试此代码

if saved_date is not None and (start_date is None and end_date is None) :
   queryset = Contact.objects.filter(
       createdAt__date__istartswith=saved_date).values_list('phone', flat=True)
elif saved_date is None and (start_date is not None and end_date is not None):
   queryset = Contact.objects.filter(
       createdAt__date__range=[start_date, end_date]).values_list('phone', flat=True)

评论

0赞 willeM_ Van Onsem 10/11/2023
这与零件有何不同?elif