📜  Createview – 基于类的视图 Django(1)

📅  最后修改于: 2023-12-03 15:00:03.623000             🧑  作者: Mango

Createview - 基于类的视图 Django

在 Django 中,视图是处理 HTTP 请求并返回 HTTP 响应的函数或类的称呼。Django 提供了许多视图方法来处理请求,其中之一便是 CreateView

什么是 CreateView ?

CreateView 是 Django 中的一个类视图,它提供了一个带表单的页面,以便用户创建新的对象并将其保存到数据库中。CreateView 是一个通用视图,因为它可以在不同的模型上使用,只需向视图提供相关模型就可以了。

CreateView 的用法

CreateView 的用法很简单。首先,我们需要导入它:

from django.views.generic.edit import CreateView

接下来,我们需要为视图指定以下属性:

  • model:要创建的模型
  • fields:要渲染表单的字段列表
  • success_url:创建成功后要重定向的 URL。

下面是一个示例代码:

from django.views.generic.edit import CreateView
from myapp.models import MyModel

class MyModelCreateView(CreateView):
    model = MyModel
    fields = ['title', 'content', 'published_date']
    success_url = '/thanks/'

这个视图将创建一个名为 MyModel 的模型,并为该模型提供一个表单。表单将显示 titlecontentpublished_date 字段,其中 titlecontent 是必填字段。如果表单成功提交,CreateView 将在数据库中创建一个新对象并将用户重定向到 /thanks/ 页面。

CreateView 中的方法

CreateView 中包含许多有用的方法,以下是其中的几个:

  • form_valid(form):当表单验证成功时,我们可以在此方法中执行自定义逻辑。
  • form_invalid(form):当表单验证失败时,我们可以在此方法中执行自定义逻辑。
  • get_context_data(**kwargs):返回一个字典,其中包含模板上下文的所有变量。
  • get_success_url():返回成功后的 URL。
结论

CreateView 是 Django 中非常有用的一个视图类,可以帮助我们快速创建带表单的页面。它非常易于使用,同时提供了许多自定义选项和方法,可以根据需要进行扩展。