python - 错误 AttributeError: 'str' 对象在查询模型时没有属性 'year'
问题描述
我得到 startdate 和 enddate,但它们是作为字符串传递的。如何将它们转换为日期?
startdate = request.POST["startdate"]
enddate = request.POST["enddate"]
queryset = paidparking.objects.all()
qsstats = QuerySetStats(queryset, date_field='expirationdate')
values = qsstats.time_series(startdate, enddate, interval='days')
return render(request, 'index/template.html', {'values': values})
错误:值 = qsstats.time_series(startdate, enddate, interval='days')
解决方案
startdate
并且enddate
是字符串,而不是datetime
对象。你需要解析这些,所以像:
from datetime import datetime
startdate = datetime.strptime(request.POST['startdate'], '%Y-%m-%d')
enddate = datetime.strptime(request.POST['enddate'], '%Y-%m-%d')
queryset = paidparking.objects.all()
qsstats = QuerySetStats(queryset, date_field='expirationdate')
values = qsstats.time_series(startdate, enddate, interval='days')
return render(request, 'index/template.html', {'values': values})
此处的格式 ( '%Y-%m-%d'
) 可能会有所不同,具体取决于日期格式为字符串的方式。
但是,我建议使用Form
[Djang-doc]。这些表单可以方便地解析、清理和验证输入。