[英]How to filter the dates based on range for datetime in django
views.py
def index(request):
if request.method == "POST":
from_date = request.POST.get("from_date")
f_date = datetime.datetime.strptime(from_date,'%Y-%m-%d')
print(f_date)
to_date = request.POST.get("to_date")
t_date = datetime.datetime.strptime(to_date, '%Y-%m-%d')
print(t_date)
global get_records_by_date
get_records_by_date = Scrapper.objects.all().filter(Q(start_time__range=f_date),Q(end_time__range=t_date))
print(get_records_by_date)
我需要根据日期时间字段从范围开始时间和结束时间获取日期。 当我运行脚本时,它在 / 'datetime.datetime' object 处显示 TypeError 是不可迭代的。 是否有针对特定问题的解决方案
__range
查找[Django-doc]需要一个包含从和到日期时间的二元组,所以:
def index(request):
if request.method == 'POST':
from_date = request.POST.get('from_date')
f_date = datetime.datetime.strptime(from_date, '%Y-%m-%d')
to_date = request.POST.get('to_date')
t_date = datetime.datetime.strptime(to_date, '%Y-%m-%d')
get_records_by_date = Scrapper.objects.filter(
some_date_field__range=(f_date, t_date)
)
# …
然而,我会建议使用表单来处理和清理输入,而不是使用全局变量:global state,尤其是在网络服务器中是一个非常糟糕的主意。
您可以将日期放入过滤器中以查找日期之间的范围。
import datetime
from_date=datetime.datetime.today().date()-datetime.timedelta(days=29)
to_date=datetime.datetime.today().date()
Somemodel.objects.filter(date_created__gte=from_date, date_created__lte=to_date)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.