2011-11-01 61 views
2

在我的Django應用程序中,我有一個DateField(格式爲'YYYY-MM-DD')。當我嘗試保存字符串'2011-11-01'時,我得到沒有錯誤,但我的字段獲得NULL值。Django將字符串保存到日期字段

我試圖用datetime和time庫中的strptime函數做這件事,但是有同樣的問題。基本上,這一切發生在一個形式

我有表單驗證

 
    if form.valid(): 
     form.cleaned_data['date'] = year + '-' + month + '-' day 
     form.save() 

+0

請顯示一些真實的代碼。表單中有哪些字段?年,月,日來自哪裏? –

回答

2

部分inclues清理數據。 cleaned_data字典包含python對象,而不是(字符串)發佈數據。

所以form.cleaned_data['data']需要一個datetime對象(或你需要清潔之前,編輯表單或交的數據)

0

我認爲你應該檢查接受Date對象的模型對象,並確認您沒有設置它總是爲空......實際上我認爲這個用詞不當是存在的,不是在視圖或保存方法中,而是在應該採用日期對象的模型對象中。也許你應該考慮在這裏發佈你的模型代碼,以便我們看到。

+0

問題是我在form.cleaned_data中寫入數據,看起來不正確。正確的方法是使f = form.save(commit = False),然後f.date = datetime(year,month,day),然後f.save()form.save_m2m()...謝謝大家,希望這對你也有幫助。 – bogtan

+0

我會做一些研究,看看我爲什麼做的方式不正確 – bogtan

相關問題