编辑混入
注解
如何将这些视图组合成编辑视图的例子可以在 的文档中找到。
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`。如果请求是 ``POST
或PUT
,还将提供请求数据(request.POST
和request.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.object
或queryset
来确定。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。