Skip to main content

编辑mixins

以下mixin用于构建Django的编辑视图:

注解

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

FormMixin

class django.views.generic.edit.FormMixin

一个mixin类,提供创建和显示表单的功能。

混合

方法和属性

initial

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

form_class

要实例化的窗体类。

success_url

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

prefix

生成表单的 prefix

get_initial()

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

get_form_class()

检索窗体类实例化。默认情况下 form_class

get_form(form_class=None)

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

get_form_kwargs()

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

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

get_prefix()

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

get_success_url()

确定表单成功验证时要重定向到的URL。默认情况下返回 success_url

form_valid(form)

重定向到 get_success_url()

form_invalid(form)

呈现响应,提供无效形式作为上下文。

get_context_data(**kwargs)
New in Django 1.9.

调用 get_form() 并将结果添加到名称为“form”的上下文数据。

ModelFormMixin

class django.views.generic.edit.ModelFormMixin

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

由于这是 SingleObjectMixin 的子类,所以这个mixin的实例可以访问 modelqueryset 属性,描述 ModelForm 正在操作的对象的类型。

如果指定 fieldsform_class 属性,则会引发 ImproperlyConfigured 异常。

混合

方法和属性

model

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

fields

字段名称列表。这被解释为与 ModelFormMeta.fields 属性相同的方式。

如果您是自动生成表单类(例如,使用 model),这是必需属性。省略此属性将导致 ImproperlyConfigured 异常。

success_url

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

success_url 可能包含字典字符串格式,它将根据对象的字段属性进行插值。例如,您可以使用 success_url="/polls/{slug}/" 重定向到由模型上的 slug 字段组成的URL。

get_form_class()

检索窗体类实例化。如果提供 form_class,将使用该类。否则,ModelForm 将使用与 querysetmodel 相关联的模型来实例化,这取决于提供哪个属性。

get_form_kwargs()

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

get_success_url()

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

form_valid(form)

保存表单实例,设置视图的当前对象,并重定向到 get_success_url()

form_invalid()

呈现响应,提供无效形式作为上下文。

ProcessFormView

class django.views.generic.edit.ProcessFormView

一个mixin,提供基本的HTTP GET和POST工作流。

注解

这被命名为“ProcessFormView”,并直接从 django.views.generic.base.View 继承,但如果独立使用则中断,所以它更多是一个混合。

扩展

方法和属性

get(request, *args, **kwargs)

使用使用 get_context_data() 创建的上下文呈现响应。

Changed in Django 1.9:

表单的构造从此方法移到 get_context_data()

post(request, *args, **kwargs)

构造表单,检查表单的有效性,并相应地处理。

put(*args, **kwargs)

PUT 操作也被处理,并且只将所有参数传递到 post()

DeletionMixin

class django.views.generic.edit.DeletionMixin

启用对 DELETE http操作的处理。

方法和属性

success_url

指定对象成功删除后重定向的网址。

success_url 可能包含字典字符串格式,它将根据对象的字段属性进行插值。例如,您可以使用 success_url="/parent/{parent_id}/" 重定向到由模型上的 parent_id 字段组成的URL。

get_success_url()

返回指定对象已成功删除时重定向到的网址。默认情况下返回 success_url