Django FormView与CreateView

Django FormView与CreateView,django,django-forms,Django,Django Forms,Django FormView和CreateView之间有什么区别 唯一不同的是,FormView需要ModelForm,而CreateView不需要 否则,两者创建对象的操作相同。来自Django文档: : 显示窗体的视图。出现错误时,使用 验证错误;成功后,重定向到新的URL 它可以用于各种目的,并且不限于创建对象。一个很好的例子是将其用作联系表单,发送电子邮件,而不在数据库中创建记录 : 一个视图,显示用于创建对象、重新显示 带有验证错误(如果有)的表单并保存对象 此通用视图的唯一目的是创

Django FormView和CreateView之间有什么区别

唯一不同的是,FormView需要ModelForm,而CreateView不需要

否则,两者创建对象的操作相同。

来自Django文档:

:

显示窗体的视图。出现错误时,使用 验证错误;成功后,重定向到新的URL

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

:

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

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


如果您的
FormView
创建模型对象,最好使用
CreateView
而不创建模型表单,这就是常规视图的用途,可以减少重复。

不同意最佳选择,例如,大多数情况下,我们不希望显示所有模型字段。然后,您可以使用
字段
属性仅包括要显示的模型字段。如果有其他字段,例如两个模型的组合,还有其他一些用例,那么您必须创建一个模型表单。我清楚地提到,您可以在不使用modelform的情况下使用createview来创建对象。如果您想做createview无法完成的事情,您可以创建一个modelform并覆盖视图的其他方法。是的,这是正确的,但在我看来,基于用例,一种方法比另一种方法更有效;)