2016-04-09 75 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

有什么额外的领域,例如两个模型的组合,还有一些其他用例。 –