编辑混入

    注解

    如何将这些视图组合成编辑视图的例子可以在 的文档中找到。

    class django.views.generic.edit.``FormMixin

    一个提供创建和显示表单的设施的混入类。

    混入

    方法和属性*

    • initial

      包含表单初始数据的字典。

    • form_class

      要实例化的表单类。

    • success_url

      表单处理成功后重定向到的 URL。

    • get_initial()

      检索表单的初始数据。默认情况下,返回 initial 的副本。

    • get_form_class()

      检索要实例化的表单类。默认情况下 。

    • get_form(form_class=None)

      使用 get_form_kwargs() 实例化 form_class。如果没有提供 form_class,将使用 。

    • get_form_kwargs()

      构建实例化表单所需的关键字参数。

      initial` `参数设置为 :meth:`.get_initial`。如果请求是 ``POSTPUT,还将提供请求数据(request.POSTrequest.FILES)。

    • get_prefix()

      为生成的表单确定 prefix。默认返回 。

    • 当表单成功验证后,确定重定向到的 URL。默认返回 success_url

    • form_valid(form)

      重定向到 。

    • form_invalid(form)

      渲染一个响应,提供无效的表单作为上下文。

    • get_context_data(\*kwargs*)

      调用 get_form() 并将结果添加到名为 ‘form’ 的上下文数据中。

    class django.views.generic.edit.``ModelFormMixin

    一个在 ModelForms 上工作的表单混入,而不是一个独立的表单。

    由于这是 的一个子类,所以这个混入的实例可以访问 model 和 属性,描述 ModelForm 所操纵的对象类型。

    如果你同时指定了 fields 和 属性,将引发 ImproperlyConfigured 异常。

    混入

    方法和属性*

    • model

      一个模型类。可以明确提供,否则将通过检查 self.objectqueryset 来确定。

    • success_url

      表单处理成功后重定向到的 URL。

      success_url 可以包含字典字符串格式,它将被插入到对象的字段属性中。例如,你可以使用 success_url="/polls/{slug}/" 来重定向到一个由模型上的 slug 字段组成的 URL。

    • get_form_class()

      检索要实例化的表单类。如果提供了 ,将使用该类。否则,将使用与 相关联的模型,或与 实例化,这取决于提供的属性。

    • get_form_kwargs()

      将当前实例(self.object)添加到标准 get_form_kwargs() 中。

    • 当表单成功验证后,确定重定向到的 URL。如果提供了 ,则返回 django.views.generic.edit.ModelFormMixin.success_url;否则,尝试使用对象的 get_absolute_url()

    • form_valid(form)

      保存表单实例,为视图设置当前对象,并重定向到 。

    • form_invalid(form)

      渲染一个响应,提供无效的表单作为上下文。

    class django.views.generic.edit.``ProcessFormView

    一个提供基本 HTTP GET 和 POST 工作流程的混入。

    注解

    这个命名为 ‘ProcessFormView’,直接继承自 django.view.generic.base.View,但如果独立使用就会中断,所以它更像是一个混入。

    扩展

    方法和属性*

    • get(request, \args, **kwargs*)

      使用 get_context_data() 创建的上下文来渲染响应。

    • post(request, \args, **kwargs*)

      构造一个表单,检查表单的有效性,并进行相应的处理。

    • put(\args, **kwargs*)

      PUT 动作也会被处理,并将所有参数传递给 。

    class django.views.generic.edit.``DeletionMixin

    启用处理 DELETE http 动作。

    **方法和属性*

    • success_url

      当指定对象被成功删除时,重定向到的网址。

      success_url 可以包含字典字符串格式,它将被插入到对象的字段属性中。例如,你可以使用 success_url="/parent/{parent_id}/" 重定向到一个模型上由 parent_id 字段组成的 URL。

    • delete(request, \args, **kwargs*)

      检索目标对象并调用其 delete() 方法,然后重定向到成功的 URL。