编辑 mixin¶
以下 mixin 用于构建 Django 的编辑视图
注意
这些 mixin 如何组合成编辑视图的示例可以在关于通用编辑视图的文档中找到。
FormMixin¶
- class django.views.generic.edit.FormMixin¶
一个提供创建和显示表单功能的 mixin 类。
Mixin
方法和属性
- initial¶
包含表单初始数据的字典。
- form_class¶
要实例化的表单类。
- success_url¶
表单成功处理后重定向到的 URL。
- 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()。如果请求是POST或PUT,则还会提供请求数据(request.POST和request.FILES)。
- get_success_url()¶
确定表单成功验证后重定向到的 URL。默认情况下返回
success_url。
- form_valid(form)¶
重定向到
get_success_url()。
- form_invalid(form)¶
呈现响应,提供无效表单作为上下文。
- get_context_data(**kwargs)¶
调用
get_form()并将结果添加到上下文数据中,名称为“form”。
ModelFormMixin¶
- class django.views.generic.edit.ModelFormMixin¶
一个作用于
ModelForms而不是独立表单的表单 mixin。由于这是
SingleObjectMixin的子类,因此此 mixin 的实例可以访问model和queryset属性,这些属性描述了ModelForm正在操作的对象类型。如果同时指定了
fields和form_class属性,则会引发ImproperlyConfigured异常。Mixin
方法和属性
- fields¶
字段名称列表。这与
ModelForm的Meta.fields属性的解释方式相同。如果您正在自动生成表单类(例如,使用
model),则此属性是必需的。省略此属性将导致ImproperlyConfigured异常。
- success_url¶
表单成功处理后重定向到的 URL。
success_url可能包含字典字符串格式化,它将针对对象的字段属性进行插值。例如,您可以使用success_url="/polls/{slug}/"重定向到由模型上的slug字段组成的URL。
- get_form_class()¶
检索要实例化的表单类。如果提供了
form_class,则将使用该类。否则,将使用与queryset关联的模型或model实例化ModelForm,具体取决于哪个属性已提供。
- 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(form)¶
呈现响应,提供无效表单作为上下文。
ProcessFormView¶
- class django.views.generic.edit.ProcessFormView¶
提供基本HTTP GET和POST工作流程的mixin。
注意
它名为“ProcessFormView”,直接继承自
django.views.generic.base.View,但如果独立使用会中断,所以更像是一个mixin。扩展
方法和属性
- get(request, *args, **kwargs)¶
使用通过
get_context_data()创建的上下文呈现响应。
- post(request, *args, **kwargs)¶
构建表单,检查表单有效性并相应地处理它。
DeletionMixin¶
- class django.views.generic.edit.DeletionMixin¶
启用
DELETEHTTP操作的处理。方法和属性
- success_url¶
成功删除指定对象后要重定向到的URL。
success_url可以包含字典字符串格式,它将根据对象的字段属性进行插值。例如,您可以使用success_url="/parent/{parent_id}/"重定向到由模型上的parent_id字段组成的URL。
- delete(request, *args, **kwargs)¶
检索目标对象并调用其
delete()方法,然后重定向到成功URL。
- get_success_url()¶
返回成功删除指定对象后要重定向到的URL。默认情况下返回
success_url。