Django FormView与CreateView

时间:2016-04-09 05:17:59

标签: django django-forms

Django FormView和CreateView有什么区别?

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

否则两者都会创建一个对象。

1 个答案:

答案 0 :(得分:6)

来自Django-docs:

FormView

  

显示表单的视图。出错时,重新显示表单   验证错误;成功时,重定向到新的URL。

它可以用于各种目的,不限于创建对象。一个很好的例子是将它用作联系表单,并在数据库中发送而不 创建记录的电子邮件。

CreateView

  

显示用于创建对象的表单的视图,重新显示该对象   带有验证错误的表单(如果有)并保存对象。

此通用视图的唯一目的是创建对象。但它不仅限于创建对象。您也可以从此视图发送电子邮件(就像FormView一样)

如果您的FormView创建了模型对象,则最好使用CreateView而不是创建模型表格,这是通用视图的用途,从而减少重复次数。