首页 > 解决方案 > 错误 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')

标签: pythondjango

解决方案


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]。这些表单可以方便地解析、清理和验证输入。


推荐阅读