我對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