Django FormView与CreateView

Vai*_*ule 10 django django-forms

Django FormView和CreateView有什么区别?

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

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

v1k*_*k45 7

来自Django-docs:

FormView:

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

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

CreateView:

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

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

如果您FormView创建模型对象,最好使用CreateView而不是创建模型,这就是通用视图的用途,从而减少重复.

  • 那么您可以使用“fields”属性仅包含要显示的模型字段。 (3认同)
  • 不同意最佳选择,例如大多数时候我们不想显示所有模型字段。 (2认同)