2016-04-09 100 views
4

Django FormView和CreateView有什麼不同?Django FormView和CreateView

只有不同我看到,FormView需要ModelForm,但CreateView不需要。

否則兩者做同樣的事情創建一個對象。

回答

4

從Django的文檔:

FormView

,其顯示形式的圖。出錯時,用 驗證錯誤重新顯示錶單;成功後,重定向到一個新的URL。

它可以用於各種目的,並不限於創建對象。一個很好的例子就是使用它作爲聯繫表格併發送電子郵件而不是在數據庫中創建記錄

CreateView

,其顯示形式用於創建對象,重新顯示 形式驗證錯誤(如果有的話)並保存對象的圖。

該通用視圖的唯一目的是創建對象。但它不限於創建對象。您可以從該視圖發送電子郵件太(就像FormView控件)

如果您FormView創建的模型對象,最好是使用CreateView,而不是創造的ModelForm,這就是一般的看法是,減少重複。

+0

不同意最佳選擇,例如大部分時間我們不想顯示所有模型字段。 –

+0

然後,您可以只包含要使用「fields」屬性顯示的模型字段。 – v1k45

+0

有什麼額外的領域,例如兩個模型的組合,還有一些其他用例。 –