“Django/docs/3.0.x/ref/class-based-views/mixins-editing”的版本间差异

来自菜鸟教程
Django/docs/3.0.x/ref/class-based-views/mixins-editing
跳转至:导航、​搜索
(autoload)
 
(Page commit)
 
第1行: 第1行:
 +
{{DISPLAYTITLE:编辑 mixin — Django 文档}}
 
<div id="editing-mixins" class="section">
 
<div id="editing-mixins" class="section">
  
= Editing mixins =
+
= 编辑混音 =
  
The following mixins are used to construct Django's editing views:
+
以下 mixin 用于构建 Django 的编辑视图:
  
 
* [[#django.views.generic.edit.FormMixin|<code>django.views.generic.edit.FormMixin</code>]]
 
* [[#django.views.generic.edit.FormMixin|<code>django.views.generic.edit.FormMixin</code>]]
第12行: 第13行:
 
<div class="admonition note">
 
<div class="admonition note">
  
注解
+
笔记
  
Examples of how these are combined into editing views can be found at
+
[[../generic-editing|通用编辑视图]] 的文档中可以找到如何将它们组合到编辑视图中的示例。
the documentation on [[../generic-editing|<span class="doc">Generic editing views</span>]].
 
  
  
第21行: 第21行:
 
<div id="formmixin" class="section">
 
<div id="formmixin" class="section">
  
== <code>FormMixin</code> ==
+
== FormMixin ==
  
 
<dl>
 
<dl>
<dt>''class'' <code>django.views.generic.edit.</code><code>FormMixin</code></dt>
+
<dt>''<span class="pre">class</span>'' <span class="sig-prename descclassname"><span class="pre">django.views.generic.edit.</span></span><span class="sig-name descname"><span class="pre">FormMixin</span></span></dt>
<dd><p>A mixin class that provides facilities for creating and displaying forms.</p>
+
<dd><p>一个混合类,提供用于创建和显示表单的工具。</p>
<p>'''Mixins'''</p>
+
<p>'''混合'''</p>
 
<ul>
 
<ul>
 
<li><p>[[../mixins-simple#django.views.generic.base|<code>django.views.generic.base.ContextMixin</code>]]</p></li></ul>
 
<li><p>[[../mixins-simple#django.views.generic.base|<code>django.views.generic.base.ContextMixin</code>]]</p></li></ul>
  
<p>'''Methods and Attributes'''</p>
+
<p>'''方法和属性'''</p>
 
<dl>
 
<dl>
<dt><code>initial</code></dt>
+
<dt><span class="sig-name descname"><span class="pre">initial</span></span></dt>
<dd><p>A dictionary containing initial data for the form.</p></dd></dl>
+
<dd><p>包含表单初始数据的字典。</p></dd></dl>
  
 
<dl>
 
<dl>
<dt><code>form_class</code></dt>
+
<dt><span class="sig-name descname"><span class="pre">form_class</span></span></dt>
<dd><p>The form class to instantiate.</p></dd></dl>
+
<dd><p>要实例化的表单类。</p></dd></dl>
  
 
<dl>
 
<dl>
<dt><code>success_url</code></dt>
+
<dt><span class="sig-name descname"><span class="pre">success_url</span></span></dt>
<dd><p>The URL to redirect to when the form is successfully processed.</p></dd></dl>
+
<dd><p>成功处理表单时重定向到的 URL。</p></dd></dl>
  
 
<dl>
 
<dl>
<dt><code>prefix</code></dt>
+
<dt><span class="sig-name descname"><span class="pre">prefix</span></span></dt>
<dd><p>The [[../../forms/api#django.forms.Form|<code>prefix</code>]] for the generated form.</p></dd></dl>
+
<dd><p>生成的表单的 [[../../forms/api#django.forms.Form|前缀]] </p></dd></dl>
  
 
<dl>
 
<dl>
<dt><code>get_initial</code><span class="sig-paren">(</span><span class="sig-paren">)</span></dt>
+
<dt><span class="sig-name descname"><span class="pre">get_initial</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span></dt>
<dd><p>Retrieve initial data for the form. By default, returns a copy of
+
<dd><p>检索表单的初始数据。 默认情况下,返回 [[#django.views.generic.edit.FormMixin.initial|initial]] 的副本。</p></dd></dl>
[[#django.views.generic.edit.FormMixin.initial|<code>initial</code>]].</p></dd></dl>
 
  
 
<dl>
 
<dl>
<dt><code>get_form_class</code><span class="sig-paren">(</span><span class="sig-paren">)</span></dt>
+
<dt><span class="sig-name descname"><span class="pre">get_form_class</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span></dt>
<dd><p>Retrieve the form class to instantiate. By default
+
<dd><p>检索要实例化的表单类。 默认情况下 [[#django.views.generic.edit.FormMixin.form_class|form_class]]</p></dd></dl>
[[#django.views.generic.edit.FormMixin.form_class|<code>form_class</code>]].</p></dd></dl>
 
  
 
<dl>
 
<dl>
<dt><code>get_form</code><span class="sig-paren">(</span>''<span class="n">form_class</span><span class="o">=</span><span class="default_value">None</span>''<span class="sig-paren">)</span></dt>
+
<dt><span class="sig-name descname"><span class="pre">get_form</span></span><span class="sig-paren">(</span>''<span class="n"><span class="pre">form_class</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span>''<span class="sig-paren">)</span></dt>
<dd><p>Instantiate an instance of <code>form_class</code> using
+
<dd><p>使用 [[#django.views.generic.edit.FormMixin.get_form_kwargs|get_form_kwargs()]] 实例化 <code>form_class</code> 的实例。 如果 <code>form_class</code> 未提供 [[#django.views.generic.edit.FormMixin.get_form_class|get_form_class()]] 将被使用。</p></dd></dl>
[[#django.views.generic.edit.FormMixin.get_form_kwargs|<code>get_form_kwargs()</code>]].
 
If <code>form_class</code> isn't provided [[#django.views.generic.edit.FormMixin.get_form_class|<code>get_form_class()</code>]] will be used.</p></dd></dl>
 
  
 
<dl>
 
<dl>
<dt><code>get_form_kwargs</code><span class="sig-paren">(</span><span class="sig-paren">)</span></dt>
+
<dt><span class="sig-name descname"><span class="pre">get_form_kwargs</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span></dt>
<dd><p>Build the keyword arguments required to instantiate the form.</p>
+
<dd><p>构建实例化表单所需的关键字参数。</p>
<p>The <code>initial</code> argument is set to [[#django.views.generic.edit.FormMixin.get_initial|<code>get_initial()</code>]]. If the
+
<p><code>initial</code> 参数设置为 [[#django.views.generic.edit.FormMixin.get_initial|get_initial()]]。 如果请求是 <code>POST</code> <code>PUT</code>,也会提供请求数据(<code>request.POST</code> <code>request.FILES</code>)。</p></dd></dl>
request is a <code>POST</code> or <code>PUT</code>, the request data (<code>request.POST</code>
 
and <code>request.FILES</code>) will also be provided.</p></dd></dl>
 
  
 
<dl>
 
<dl>
<dt><code>get_prefix</code><span class="sig-paren">(</span><span class="sig-paren">)</span></dt>
+
<dt><span class="sig-name descname"><span class="pre">get_prefix</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span></dt>
<dd><p>Determine the [[../../forms/api#django.forms.Form|<code>prefix</code>]] for the generated form.
+
<dd><p>为生成的表单确定 [[../../forms/api#django.forms.Form|前缀]] 。 默认返回 [[#django.views.generic.edit.FormMixin.prefix|prefix]]</p></dd></dl>
Returns [[#django.views.generic.edit.FormMixin.prefix|<code>prefix</code>]] by default.</p></dd></dl>
 
  
 
<dl>
 
<dl>
<dt><code>get_success_url</code><span class="sig-paren">(</span><span class="sig-paren">)</span></dt>
+
<dt><span class="sig-name descname"><span class="pre">get_success_url</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span></dt>
<dd><p>Determine the URL to redirect to when the form is successfully
+
<dd><p>确定表单验证成功后要重定向到的 URL。 默认返回 [[#django.views.generic.edit.FormMixin.success_url|success_url]]</p></dd></dl>
validated. Returns
 
[[#django.views.generic.edit.FormMixin.success_url|<code>success_url</code>]] by default.</p></dd></dl>
 
  
 
<dl>
 
<dl>
<dt><code>form_valid</code><span class="sig-paren">(</span>''<span class="n">form</span>''<span class="sig-paren">)</span></dt>
+
<dt><span class="sig-name descname"><span class="pre">form_valid</span></span><span class="sig-paren">(</span>''<span class="n"><span class="pre">form</span></span>''<span class="sig-paren">)</span></dt>
<dd><p>Redirects to
+
<dd><p>重定向到 [[#django.views.generic.edit.FormMixin.get_success_url|get_success_url()]]</p></dd></dl>
[[#django.views.generic.edit.FormMixin.get_success_url|<code>get_success_url()</code>]].</p></dd></dl>
 
  
 
<dl>
 
<dl>
<dt><code>form_invalid</code><span class="sig-paren">(</span>''<span class="n">form</span>''<span class="sig-paren">)</span></dt>
+
<dt><span class="sig-name descname"><span class="pre">form_invalid</span></span><span class="sig-paren">(</span>''<span class="n"><span class="pre">form</span></span>''<span class="sig-paren">)</span></dt>
<dd><p>Renders a response, providing the invalid form as context.</p></dd></dl>
+
<dd><p>呈现响应,提供无效表单作为上下文。</p></dd></dl>
  
 
<dl>
 
<dl>
<dt><code>get_context_data</code><span class="sig-paren">(</span>''<span class="o">**</span><span class="n">kwargs</span>''<span class="sig-paren">)</span></dt>
+
<dt><span class="sig-name descname"><span class="pre">get_context_data</span></span><span class="sig-paren">(</span>''<span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span>''<span class="sig-paren">)</span></dt>
<dd><p>Calls [[#django.views.generic.edit.FormMixin.get_form|<code>get_form()</code>]] and adds the result to the context data with the
+
<dd><p>调用 [[#django.views.generic.edit.FormMixin.get_form|get_form()]] 并将结果添加到名为“form”的上下文数据中。</p></dd></dl>
name 'form'.</p></dd></dl>
 
 
</dd></dl>
 
</dd></dl>
  
第100行: 第89行:
 
<div id="modelformmixin" class="section">
 
<div id="modelformmixin" class="section">
  
== <code>ModelFormMixin</code> ==
+
== ModelFormMixin ==
  
 
<dl>
 
<dl>
<dt>''class'' <code>django.views.generic.edit.</code><code>ModelFormMixin</code></dt>
+
<dt>''<span class="pre">class</span>'' <span class="sig-prename descclassname"><span class="pre">django.views.generic.edit.</span></span><span class="sig-name descname"><span class="pre">ModelFormMixin</span></span></dt>
<dd><p>A form mixin that works on <code>ModelForms</code>, rather than a standalone form.</p>
+
<dd><p>一个在 <code>ModelForms</code> 上工作的表单混合,而不是一个独立的表单。</p>
<p>Since this is a subclass of
+
<p>由于这是 [[../mixins-single-object#django.views.generic.detail|SingleObjectMixin]] 的子类,因此该 mixin 的实例可以访问 [[../mixins-single-object#django.views.generic.detail.SingleObjectMixin|model]] [[../mixins-single-object#django.views.generic.detail.SingleObjectMixin|queryset]] 属性,描述 [ X191X] 正在操纵。</p>
[[../mixins-single-object#django.views.generic.detail|<code>SingleObjectMixin</code>]], instances of this
+
<p>如果同时指定 [[#django.views.generic.edit.ModelFormMixin.fields|fields]] 和 [[#django.views.generic.edit.FormMixin.form_class|form_class]] 属性,则会引发 [[../../exceptions#django.core.exceptions|ImproperlyConfigured]] 异常。</p>
mixin have access to the
+
<p>'''混合'''</p>
[[../mixins-single-object#django.views.generic.detail.SingleObjectMixin|<code>model</code>]] and
 
[[../mixins-single-object#django.views.generic.detail.SingleObjectMixin|<code>queryset</code>]] attributes,
 
describing the type of object that the <code>ModelForm</code> is manipulating.</p>
 
<p>如果同时指定了 [[#django.views.generic.edit.ModelFormMixin.fields|<code>fields</code>]] 和 [[#django.views.generic.edit.FormMixin.form_class|<code>form_class</code>]] 属性,将会引发 [[../../exceptions#django.core.exceptions|<code>ImproperlyConfigured</code>]] 异常。</p>
 
<p>'''Mixins'''</p>
 
 
<ul>
 
<ul>
 
<li><p>[[#django.views.generic.edit.FormMixin|<code>django.views.generic.edit.FormMixin</code>]]</p></li>
 
<li><p>[[#django.views.generic.edit.FormMixin|<code>django.views.generic.edit.FormMixin</code>]]</p></li>
 
<li><p>[[../mixins-single-object#django.views.generic.detail|<code>django.views.generic.detail.SingleObjectMixin</code>]]</p></li></ul>
 
<li><p>[[../mixins-single-object#django.views.generic.detail|<code>django.views.generic.detail.SingleObjectMixin</code>]]</p></li></ul>
  
<p>'''Methods and Attributes'''</p>
+
<p>'''方法和属性'''</p>
 
<dl>
 
<dl>
<dt><code>model</code></dt>
+
<dt><span class="sig-name descname"><span class="pre">model</span></span></dt>
<dd><p>A model class. Can be explicitly provided, otherwise will be determined
+
<dd><p>一个模型类。 可以明确提供,否则将通过检查 <code>self.object</code> [[../mixins-single-object#django.views.generic.detail.SingleObjectMixin|queryset]] 来确定。</p></dd></dl>
by examining <code>self.object</code> or
 
[[../mixins-single-object#django.views.generic.detail.SingleObjectMixin|<code>queryset</code>]].</p></dd></dl>
 
  
 
<dl>
 
<dl>
<dt><code>fields</code></dt>
+
<dt><span class="sig-name descname"><span class="pre">fields</span></span></dt>
<dd><p>A list of names of fields. This is interpreted the same way as the
+
<dd><p>字段名称列表。 这与 [[../../../topics/forms/modelforms#django.forms|ModelForm]] 的 <code>Meta.fields</code> 属性的解释方式相同。</p>
<code>Meta.fields</code> attribute of [[../../../topics/forms/modelforms#django.forms|<code>ModelForm</code>]].</p>
+
<p>如果您自动生成表单类,这是必需的属性(例如 使用 <code>model</code>)。 省略此属性将导致 [[../../exceptions#django.core.exceptions|ImproperlyConfigured]] 异常。</p></dd></dl>
<p>This is a required attribute if you are generating the form class
 
automatically (e.g. using <code>model</code>). Omitting this attribute will
 
result in an [[../../exceptions#django.core.exceptions|<code>ImproperlyConfigured</code>]]
 
exception.</p></dd></dl>
 
  
 
<dl>
 
<dl>
<dt><code>success_url</code></dt>
+
<dt><span class="sig-name descname"><span class="pre">success_url</span></span></dt>
<dd><p>The URL to redirect to when the form is successfully processed.</p>
+
<dd><p>成功处理表单时重定向到的 URL。</p>
<p><code>success_url</code> may contain dictionary string formatting, which
+
<p><code>success_url</code> 可能包含字典字符串格式,它将根据对象的字段属性进行插值。 例如,您可以使用 <code>success_url=&quot;/polls/{slug}/&quot;</code> 重定向到由模型上的 <code>slug</code> 字段组成的 URL。</p></dd></dl>
will be interpolated against the object's field attributes. For
 
example, you could use <code>success_url=&quot;/polls/{slug}/&quot;</code> to
 
redirect to a URL composed out of the <code>slug</code> field on a model.</p></dd></dl>
 
  
 
<dl>
 
<dl>
<dt><code>get_form_class</code><span class="sig-paren">(</span><span class="sig-paren">)</span></dt>
+
<dt><span class="sig-name descname"><span class="pre">get_form_class</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span></dt>
<dd><p>Retrieve the form class to instantiate. If
+
<dd><p>检索要实例化的表单类。 如果提供了 [[#django.views.generic.edit.FormMixin.form_class|form_class]],则将使用该类。 否则,将使用与 [[../mixins-single-object#django.views.generic.detail.SingleObjectMixin|queryset]] [[../mixins-single-object#django.views.generic.detail.SingleObjectMixin|model]] 关联的模型实例化 <code>ModelForm</code>,具体取决于提供的属性。</p></dd></dl>
[[#django.views.generic.edit.FormMixin.form_class|<code>form_class</code>]] is provided,
 
that class will be used. Otherwise, a <code>ModelForm</code> will be
 
instantiated using the model associated with the
 
[[../mixins-single-object#django.views.generic.detail.SingleObjectMixin|<code>queryset</code>]], or
 
with the [[../mixins-single-object#django.views.generic.detail.SingleObjectMixin|<code>model</code>]],
 
depending on which attribute is provided.</p></dd></dl>
 
  
 
<dl>
 
<dl>
<dt><code>get_form_kwargs</code><span class="sig-paren">(</span><span class="sig-paren">)</span></dt>
+
<dt><span class="sig-name descname"><span class="pre">get_form_kwargs</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span></dt>
<dd><p>Add the current instance (<code>self.object</code>) to the standard
+
<dd><p>将当前实例 (<code>self.object</code>) 添加到标准 [[#django.views.generic.edit.FormMixin.get_form_kwargs|get_form_kwargs()]]</p></dd></dl>
[[#django.views.generic.edit.FormMixin.get_form_kwargs|<code>get_form_kwargs()</code>]].</p></dd></dl>
 
  
 
<dl>
 
<dl>
<dt><code>get_success_url</code><span class="sig-paren">(</span><span class="sig-paren">)</span></dt>
+
<dt><span class="sig-name descname"><span class="pre">get_success_url</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span></dt>
<dd><p>Determine the URL to redirect to when the form is successfully
+
<dd><p>确定表单验证成功后要重定向到的 URL。 如果提供,则返回 [[#django.views.generic.edit.ModelFormMixin.success_url|django.views.generic.edit.ModelFormMixin.success_url]]; 否则,尝试使用对象的 <code>get_absolute_url()</code></p></dd></dl>
validated. Returns
 
[[#django.views.generic.edit.ModelFormMixin.success_url|<code>django.views.generic.edit.ModelFormMixin.success_url</code>]] if it is
 
provided; otherwise, attempts to use the <code>get_absolute_url()</code> of the
 
object.</p></dd></dl>
 
  
 
<dl>
 
<dl>
<dt><code>form_valid</code><span class="sig-paren">(</span>''<span class="n">form</span>''<span class="sig-paren">)</span></dt>
+
<dt><span class="sig-name descname"><span class="pre">form_valid</span></span><span class="sig-paren">(</span>''<span class="n"><span class="pre">form</span></span>''<span class="sig-paren">)</span></dt>
<dd><p>Saves the form instance, sets the current object for the view, and
+
<dd><p>保存表单实例,设置视图的当前对象,并重定向到 [[#django.views.generic.edit.FormMixin.get_success_url|get_success_url()]]</p></dd></dl>
redirects to
 
[[#django.views.generic.edit.FormMixin.get_success_url|<code>get_success_url()</code>]].</p></dd></dl>
 
  
 
<dl>
 
<dl>
<dt><code>form_invalid</code><span class="sig-paren">(</span>''<span class="n">form</span>''<span class="sig-paren">)</span></dt>
+
<dt><span class="sig-name descname"><span class="pre">form_invalid</span></span><span class="sig-paren">(</span>''<span class="n"><span class="pre">form</span></span>''<span class="sig-paren">)</span></dt>
<dd><p>Renders a response, providing the invalid form as context.</p></dd></dl>
+
<dd><p>呈现响应,提供无效表单作为上下文。</p></dd></dl>
 
</dd></dl>
 
</dd></dl>
  
第179行: 第141行:
 
<div id="processformview" class="section">
 
<div id="processformview" class="section">
  
== <code>ProcessFormView</code> ==
+
== ProcessFormView ==
  
 
<dl>
 
<dl>
<dt>''class'' <code>django.views.generic.edit.</code><code>ProcessFormView</code></dt>
+
<dt>''<span class="pre">class</span>'' <span class="sig-prename descclassname"><span class="pre">django.views.generic.edit.</span></span><span class="sig-name descname"><span class="pre">ProcessFormView</span></span></dt>
<dd><p>A mixin that provides basic HTTP GET and POST workflow.</p>
+
<dd><p>提供基本 HTTP GET POST 工作流程的 mixin。</p>
 
<div class="admonition note">
 
<div class="admonition note">
  
<p>注解</p>
+
<p>笔记</p>
<p>This is named 'ProcessFormView' and inherits directly from
+
<p>这被命名为'ProcessFormView'并直接从[[../base#django.views.generic.base|django.views.generic.base.View]]继承,但如果独立使用会中断,所以它更像是一个mixin。</p>
[[../base#django.views.generic.base|<code>django.views.generic.base.View</code>]], but breaks if used
 
independently, so it is more of a mixin.</p>
 
  
 
</div>
 
</div>
<p>'''Extends'''</p>
+
<p>'''扩展'''</p>
 
<ul>
 
<ul>
 
<li><p>[[../base#django.views.generic.base|<code>django.views.generic.base.View</code>]]</p></li></ul>
 
<li><p>[[../base#django.views.generic.base|<code>django.views.generic.base.View</code>]]</p></li></ul>
  
<p>'''Methods and Attributes'''</p>
+
<p>'''方法和属性'''</p>
 
<dl>
 
<dl>
<dt><code>get</code><span class="sig-paren">(</span>''<span class="n">request</span>'', ''<span class="o">*</span><span class="n">args</span>'', ''<span class="o">**</span><span class="n">kwargs</span>''<span class="sig-paren">)</span></dt>
+
<dt><span class="sig-name descname"><span class="pre">get</span></span><span class="sig-paren">(</span>''<span class="n"><span class="pre">request</span></span>'', ''<span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span>'', ''<span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span>''<span class="sig-paren">)</span></dt>
<dd><p>Renders a response using a context created with
+
<dd><p>使用由 [[#django.views.generic.edit.FormMixin.get_context_data|get_context_data()]] 创建的上下文呈现响应。</p></dd></dl>
[[#django.views.generic.edit.FormMixin.get_context_data|<code>get_context_data()</code>]].</p></dd></dl>
 
  
 
<dl>
 
<dl>
<dt><code>post</code><span class="sig-paren">(</span>''<span class="n">request</span>'', ''<span class="o">*</span><span class="n">args</span>'', ''<span class="o">**</span><span class="n">kwargs</span>''<span class="sig-paren">)</span></dt>
+
<dt><span class="sig-name descname"><span class="pre">post</span></span><span class="sig-paren">(</span>''<span class="n"><span class="pre">request</span></span>'', ''<span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span>'', ''<span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span>''<span class="sig-paren">)</span></dt>
<dd><p>Constructs a form, checks the form for validity, and handles it
+
<dd><p>构造一个表单,检查表单的有效性,并相应地处理它。</p></dd></dl>
accordingly.</p></dd></dl>
 
  
 
<dl>
 
<dl>
<dt><code>put</code><span class="sig-paren">(</span>''<span class="o">*</span><span class="n">args</span>'', ''<span class="o">**</span><span class="n">kwargs</span>''<span class="sig-paren">)</span></dt>
+
<dt><span class="sig-name descname"><span class="pre">put</span></span><span class="sig-paren">(</span>''<span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span>'', ''<span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span>''<span class="sig-paren">)</span></dt>
<dd><p>The <code>PUT</code> action is also handled and passes all parameters through to
+
<dd><p><code>PUT</code> 动作也被处理并将所有参数传递给 [[#django.views.generic.edit.ProcessFormView.post|post()]]</p></dd></dl>
[[#django.views.generic.edit.ProcessFormView.post|<code>post()</code>]].</p></dd></dl>
 
 
</dd></dl>
 
</dd></dl>
  
第217行: 第174行:
 
<div id="deletionmixin" class="section">
 
<div id="deletionmixin" class="section">
  
== <code>DeletionMixin</code> ==
+
== DeletionMixin ==
  
 
<dl>
 
<dl>
<dt>''class'' <code>django.views.generic.edit.</code><code>DeletionMixin</code></dt>
+
<dt>''<span class="pre">class</span>'' <span class="sig-prename descclassname"><span class="pre">django.views.generic.edit.</span></span><span class="sig-name descname"><span class="pre">DeletionMixin</span></span></dt>
<dd><p>Enables handling of the <code>DELETE</code> http action.</p>
+
<dd><p>启用对 <code>DELETE</code> http 操作的处理。</p>
<p>'''Methods and Attributes'''</p>
+
<p>'''方法和属性'''</p>
 
<dl>
 
<dl>
<dt><code>success_url</code></dt>
+
<dt><span class="sig-name descname"><span class="pre">success_url</span></span></dt>
<dd><p>The url to redirect to when the nominated object has been
+
<dd><p>成功删除指定对象后重定向到的 url。</p>
successfully deleted.</p>
+
<p><code>success_url</code> 可能包含字典字符串格式,它将根据对象的字段属性进行插值。 例如,您可以使用 <code>success_url=&quot;/parent/{parent_id}/&quot;</code> 重定向到由模型上的 <code>parent_id</code> 字段组成的 URL。</p></dd></dl>
<p><code>success_url</code> may contain dictionary string formatting, which will be
 
interpolated against the object's field attributes. For example, you
 
could use <code>success_url=&quot;/parent/{parent_id}/&quot;</code> to redirect to a URL
 
composed out of the <code>parent_id</code> field on a model.</p></dd></dl>
 
  
 
<dl>
 
<dl>
<dt><code>delete</code><span class="sig-paren">(</span>''<span class="n">request</span>'', ''<span class="o">*</span><span class="n">args</span>'', ''<span class="o">**</span><span class="n">kwargs</span>''<span class="sig-paren">)</span></dt>
+
<dt><span class="sig-name descname"><span class="pre">delete</span></span><span class="sig-paren">(</span>''<span class="n"><span class="pre">request</span></span>'', ''<span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span>'', ''<span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span>''<span class="sig-paren">)</span></dt>
<dd><p>Retrieves the target object and calls its <code>delete()</code> method, then
+
<dd><p>检索目标对象并调用其 <code>delete()</code> 方法,然后重定向到成功 URL。</p></dd></dl>
redirects to the success URL.</p></dd></dl>
 
  
 
<dl>
 
<dl>
<dt><code>get_success_url</code><span class="sig-paren">(</span><span class="sig-paren">)</span></dt>
+
<dt><span class="sig-name descname"><span class="pre">get_success_url</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span></dt>
<dd><p>Returns the url to redirect to when the nominated object has been
+
<dd><p>返回指定对象已成功删除后要重定向到的 url。 默认返回 [[#django.views.generic.edit.DeletionMixin.success_url|success_url]]</p></dd></dl>
successfully deleted. Returns
 
[[#django.views.generic.edit.DeletionMixin.success_url|<code>success_url</code>]] by
 
default.</p></dd></dl>
 
 
</dd></dl>
 
</dd></dl>
  
第249行: 第198行:
  
 
</div>
 
</div>
 +
<div class="clearer">
  
[[Category:Django 3.0.x 中文文档]]
+
 
 +
 
 +
</div>
 +
 
 +
[[Category:Django 3.0.x 文档]]

2021年10月31日 (日) 04:09的最新版本

编辑混音

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

笔记

通用编辑视图 的文档中可以找到如何将它们组合到编辑视图中的示例。


FormMixin

class django.views.generic.edit.FormMixin

一个混合类,提供用于创建和显示表单的工具。

混合

方法和属性

initial

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

form_class

要实例化的表单类。

success_url

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

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

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 的子类,因此该 mixin 的实例可以访问 modelqueryset 属性,描述 [ X191X] 正在操纵。

如果同时指定 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,则将使用该类。 否则,将使用与 querysetmodel 关联的模型实例化 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)

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

put(*args, **kwargs)

PUT 动作也被处理并将所有参数传递给 post()


DeletionMixin

class django.views.generic.edit.DeletionMixin

启用对 DELETE http 操作的处理。

方法和属性

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