我認爲使用模型表單而不是常規表單(放棄modelform提供的所有簡單事情)會更容易。 但是當我嘗試這樣做:在Django中處理模型表單
>>> m = Model.objects.get(pk=1)
>>> f = ModelForm(instance=m)
>>> f.is_valid()
False
>>> f.save()
AttributeError: 'ModelForm' objects has no attribute 'cleaned_data'
我認爲Django的documentation是錯的說:
通過的ModelForm生產的每個表單也有一個save()方法。這個 方法創建並保存數據庫對象的數據綁定到 表單。 ModelForm的子類可以接受現有的 實例作爲關鍵字參數實例;如果提供了,則save() 將更新該實例。如果沒有提供,save()會創建一個 指定模型的新實例
原因這只是對我而言不起作用。
我說django文檔錯了嗎?
在此先感謝。
你知道,在這種情況下,使用ModelForm(無論,instance = m)還是ModelForm(data = whatever,instance = m)的結果是相同的。不過,我不能只更新一個字段,它說每個字段都是必需的,因此使is_valid返回False。但這一定與我的模型有關。 – 2013-05-12 18:29:50
是的,我知道。您的代碼段只包含ModelForm初始化的「instance =」參數。另外:請在你的問題中包含更多相關的代碼。而且:在你提到的這一段中,Django文檔絕對沒有錯。 – mawimawi 2013-05-12 18:38:12