编辑混入¶
以下混入用于构建 Django 的编辑视图。
- django.views.generic.edit.FormMixin
- django.views.generic.edit.ModelFormMixin
- django.views.generic.edit.ProcessFormView
- django.views.generic.edit.DeletionMixin
备注
如何将这些视图组合成编辑视图的例子可以在 通用编辑视图 的文档中找到。
FormMixin¶
- 
class django.views.generic.edit.FormMixin¶
- 一个提供创建和显示表单的设施的混入类。 - 混入 - **方法和属性* - 
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` `参数设置为 :meth:`.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上工作的表单混入,而不是一个独立的表单。- 由于这是 - SingleObjectMixin的一个子类,所以这个混入的实例可以访问- model和- queryset属性,描述- ModelForm所操纵的对象类型。- 如果你同时指定了 - fields和- form_class属性,将引发- ImproperlyConfigured异常。- 混入 - **方法和属性* - 
fields¶
- 字段名的列表。这与 - ModelForm的- Meta.fields属性的解释方式相同。- 如果你是自动生成表单类,这个属性是必须的(比如使用 - model)。忽略这个属性将导致- ImproperlyConfigured异常。
 - 
success_url¶
- 表单处理成功后重定向到的 URL。 - success_url可以包含字典字符串格式,它将被插入到对象的字段属性中。例如,你可以使用- success_url="/polls/{slug}/"来重定向到一个由模型上的- slug字段组成的 URL。
 - 
get_form_class()¶
- 检索要实例化的表单类。如果提供了 - form_class,将使用该类。否则,将使用与- queryset相关联的模型,或与- model实例化,这取决于提供的属性。
 - 
get_form_kwargs()¶
- 将当前实例( - self.object)添加到标准- get_form_kwargs()中。
 - 
get_success_url()¶
- 当表单成功验证后,确定重定向到的 URL。如果提供了 - django.views.generic.edit.ModelFormMixin.success_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 工作流程的混入。 - 备注 - 这个命名为 'ProcessFormView',直接继承自 - django.view.generic.base.View,但如果独立使用就会中断,所以它更像是一个混入。- 扩展 - **方法和属性* - 
get(request, *args, **kwargs)¶
- 使用 - get_context_data()创建的上下文来渲染响应。
 - 
post(request, *args, **kwargs)¶
- 构造一个表单,检查表单的有效性,并进行相应的处理。 
 
- 
DeletionMixin¶
- 
class django.views.generic.edit.DeletionMixin¶
- 启用对 - DELETEHTTP 动作的处理。- **方法和属性* - 
success_url¶
- 当指定对象被成功删除时,重定向到的网址。 - success_url可以包含字典字符串格式,它将被插入到对象的字段属性中。例如,你可以使用- success_url="/parent/{parent_id}/"重定向到一个模型上由- parent_id字段组成的 URL。
 - 
delete(request, *args, **kwargs)¶
- 检索目标对象并调用其 - delete()方法,然后重定向到成功的 URL。
 - 
get_success_url()¶
- 当指定对象被成功删除时,返回重定向到的 url。默认返回 - success_url。
 
- 
 
          