2013-10-30 48 views
0

我使用CreateViewUpdateView直接到urls.py我的應用程序,其名稱是dydict。在文件forms.py中,我使用的是ModelForm,我排除了顯示的幾個字段,其中一些字段應在創建或更新時設置。所以,正如標題中提到的那樣,update部分工作,但創建部分並不明顯,因爲我已經排除的必填字段被髮送爲空,這在我的情況中是不允許的。所以這裏的問題是,我應該怎麼做,以填補exclusion域到文件forms.py,以便我不必覆蓋CreateViewdjango通用視圖更新/創建:更新工作,但創建提高IntegrityError

在此先感謝。

回答

1

那麼,你必須設置你的必填字段。如果您不希望它們在表單中顯示或可編輯,則可以選擇將它們設置在視圖中(通過使用自定義子類CreateView),或者如果適用於模型類的save方法中的設計。或者在模型中的字段上聲明適當的default值。

它也可以將字段放入窗體中,但將它們設置爲使用HiddenInput小部件。這對於惡意輸入並不安全,所以我不會那樣做純粹的自動化領域。

0

您不能排除在模型定義中根據需要設置的字段。您需要爲這些模型字段中的每一個定義blank=True/null=True

如果這不能解決您的問題,那麼請向我們展示模型和表單定義,以便我們確切知道代碼的外觀。