Django FormView 与 CreateView

标签 django django-forms

Django FormView 和 CreateView 有什么区别?

我看到的唯一区别是,FormView 需要 ModelForm 但 CreateView 不需要。

否则,两者都会做同样的事情来创建一个对象。

最佳答案

来自 Django 文档:

FormView :

A view that displays a form. On error, redisplays the form with validation errors; on success, redirects to a new URL.



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

CreateView :

A view that displays a form for creating an object, redisplaying the form with validation errors (if there are any) and saving the object.



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

如果您的 FormView创建模型对象,最好使用CreateView而不是创建模型形式,这就是通用 View 的用途,减少重复。

关于Django FormView 与 CreateView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36513055/

相关文章:

django - 在 Django 应用程序的数据库列中保存标签(逗号分隔)会使大数据库变慢

django - 在不重新指定选项的情况下覆盖 Django ModelForm 中的 ChoiceField 小部件

Django 1.11 CreateView传递URL参数

Django 'dict' 对象没有属性 'getlist'

python - 从 Windows 使用 (Linux) virtualenv

python - 在一对多 Django 模型和模型形式上使用获取或插入功能

django - ModelForm 中 __init__ 中的访问请求

django - 将引导样式应用于Django表单

python - 在settings.py 中运行collectstatic 时出现语法错误(Django 1.5.1)

python - 没有名为 django 的模块,但已安装