我对django很陌生,也许我在问一些非常基本的东西。request.POST ['time']必须是一个datefield()
我有以下代码:
crush.time = request.POST['time']
这个“时间”岗位价值是timefield,我需要处理的时间价值,但我的一切是crush.time是一个字符串,然后我得到了下面的错误,当我尝试的过程:
'unicode' object has no attribute 'hour'
我对django很陌生,也许我在问一些非常基本的东西。request.POST ['time']必须是一个datefield()
我有以下代码:
crush.time = request.POST['time']
这个“时间”岗位价值是timefield,我需要处理的时间价值,但我的一切是crush.time是一个字符串,然后我得到了下面的错误,当我尝试的过程:
'unicode' object has no attribute 'hour'
只需使用Python datetime
库转换成时间对象:
datetime.datetime.strptime(request.POST['time'], '%H:%M:%S').time()
的POST multidictionary包含字符串 - 它不知道蟒蛇的数据类型。你必须把它解析成一个日期时间对象。看看datetime文档。
假设你的“时间”字段的格式为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。
没有其他办法可以做到不使用这个类implemetation?我只想将这个字符串解析成一个日期时间对象..它看起来像解析一个简单对象很多工作。 – david 2011-02-16 20:38:07