我对django很新,也许我在问一些非常元素的东西。
我有以下代码:
crush.time = request.POST['time']
这个“时间”帖子值是一个时间段,我需要处理作为时间值,但我得到的是crush.time是一个字符串,然后当我尝试处理时出现以下错误:
'unicode' object has no attribute 'hour'
答案 0 :(得分:1)
POST multidictionary包含字符串 - 它不知道python数据类型。您必须将其解析为日期时间对象。查看日期时间文档。
答案 1 :(得分:1)
假设您的'时间'字段的格式为H:M:S或H:M,那么您可以创建一个django表单来为您执行解析工作(请记住,您不要不一定需要输出表格):
在您的forms.py中:
from django import forms
class BasicTimeForm(forms.Form):
time = forms.TimeField()
在您看来:
if request.method == 'POST':
form = forms.BasicTimeForm(request.POST)
if form.is_valid():
crush.time = form.cleaned_data['time']
发帖后, crush.time 现在应该包含datetime.time。
答案 2 :(得分:1)
只需使用Python datetime
库转换为时间对象:
datetime.datetime.strptime(request.POST['time'], '%H:%M:%S').time()