{"title":"编辑混入","version":"4.2","locale":"zh-hans","docname":"ref/class-based-views/mixins-editing","url":"/zh-hans/4.2/ref/class-based-views/mixins-editing/","canonical":"https://djangodocs.dev/zh-hans/4.2/ref/class-based-views/mixins-editing/","summary":"以下混入用于构建 Django 的编辑视图。 django.views.generic.edit.FormMixin django.views.generic.edit.ModelFormMixin django.views.generic.edit.ProcessFormView…","html":"<h1>编辑混入<a class=\"heading-anchor\" href=\"#editing-mixins\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>以下混入用于构建 Django 的编辑视图。</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.edit.FormMixin\" title=\"django.views.generic.edit.FormMixin\"><code class=\"xref py py-class docutils literal notranslate\">django.views.generic.edit.FormMixin</code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.edit.ModelFormMixin\" title=\"django.views.generic.edit.ModelFormMixin\"><code class=\"xref py py-class docutils literal notranslate\">django.views.generic.edit.ModelFormMixin</code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.edit.ProcessFormView\" title=\"django.views.generic.edit.ProcessFormView\"><code class=\"xref py py-class docutils literal notranslate\">django.views.generic.edit.ProcessFormView</code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.edit.DeletionMixin\" title=\"django.views.generic.edit.DeletionMixin\"><code class=\"xref py py-class docutils literal notranslate\">django.views.generic.edit.DeletionMixin</code></a></p></li>\n</ul>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>如何将这些视图组合成编辑视图的例子可以在 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/generic-editing/\"><span class=\"doc\">通用编辑视图</span></a> 的文档中找到。</p>\n</aside>\n<section id=\"formmixin\">\n<h2><code class=\"docutils literal notranslate\">FormMixin</code><a class=\"heading-anchor\" href=\"#formmixin\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.FormMixin\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-prename descclassname\">django.views.generic.edit.</span><span class=\"sig-name descname\">FormMixin</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.FormMixin\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>一个提供创建和显示表单的设施的混入类。</p>\n<p><strong>混入</strong></p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-simple/#django.views.generic.base.ContextMixin\" title=\"django.views.generic.base.ContextMixin\"><code class=\"xref py py-class docutils literal notranslate\">django.views.generic.base.ContextMixin</code></a></p></li>\n</ul>\n<p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">**</span></a>方法和属性*</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.FormMixin.initial\">\n<span class=\"sig-name descname\">initial</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.FormMixin.initial\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>包含表单初始数据的字典。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.FormMixin.form_class\">\n<span class=\"sig-name descname\">form_class</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.FormMixin.form_class\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>要实例化的表单类。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.FormMixin.success_url\">\n<span class=\"sig-name descname\">success_url</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.FormMixin.success_url\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>表单处理成功后重定向到的 URL。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.FormMixin.prefix\">\n<span class=\"sig-name descname\">prefix</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.FormMixin.prefix\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>生成的表单的 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/forms/api/#django.forms.Form.prefix\" title=\"django.forms.Form.prefix\"><code class=\"xref py py-attr docutils literal notranslate\">prefix</code></a>。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.FormMixin.get_initial\">\n<span class=\"sig-name descname\">get_initial</span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.FormMixin.get_initial\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>检索表单的初始数据。默认情况下，返回 <a class=\"reference internal\" href=\"#django.views.generic.edit.FormMixin.initial\" title=\"django.views.generic.edit.FormMixin.initial\"><code class=\"xref py py-attr docutils literal notranslate\">initial</code></a> 的副本。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.FormMixin.get_form_class\">\n<span class=\"sig-name descname\">get_form_class</span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.FormMixin.get_form_class\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>检索要实例化的表单类。默认 <code class=\"xref py py-attr docutils literal notranslate\">form_class</code>。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.FormMixin.get_form\">\n<span class=\"sig-name descname\">get_form</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">form_class<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.FormMixin.get_form\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>使用 <a class=\"reference internal\" href=\"#django.views.generic.edit.FormMixin.get_form_kwargs\" title=\"django.views.generic.edit.FormMixin.get_form_kwargs\"><code class=\"xref py py-meth docutils literal notranslate\">get_form_kwargs()</code></a> 实例化 <code class=\"docutils literal notranslate\">form_class</code>。如果没有提供 <code class=\"docutils literal notranslate\">form_class</code>，将使用 <a class=\"reference internal\" href=\"#django.views.generic.edit.FormMixin.get_form_class\" title=\"django.views.generic.edit.FormMixin.get_form_class\"><code class=\"xref py py-meth docutils literal notranslate\">get_form_class()</code></a>。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.FormMixin.get_form_kwargs\">\n<span class=\"sig-name descname\">get_form_kwargs</span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.FormMixin.get_form_kwargs\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>构建实例化表单所需的关键字参数。</p>\n<p><code class=\"docutils literal notranslate\">initial` `参数设置为 :meth:`.get_initial`。如果请求是 ``POST</code> 或 <code class=\"docutils literal notranslate\">PUT</code>，还将提供请求数据（<code class=\"docutils literal notranslate\">request.POST</code> 和 <code class=\"docutils literal notranslate\">request.FILES</code>）。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.FormMixin.get_prefix\">\n<span class=\"sig-name descname\">get_prefix</span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.FormMixin.get_prefix\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>为生成的表单确定 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/forms/api/#django.forms.Form.prefix\" title=\"django.forms.Form.prefix\"><code class=\"xref py py-attr docutils literal notranslate\">prefix</code></a>。默认返回 <a class=\"reference internal\" href=\"#django.views.generic.edit.FormMixin.prefix\" title=\"django.views.generic.edit.FormMixin.prefix\"><code class=\"xref py py-attr docutils literal notranslate\">prefix</code></a>。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.FormMixin.get_success_url\">\n<span class=\"sig-name descname\">get_success_url</span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.FormMixin.get_success_url\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>当表单成功验证后，确定重定向到的 URL。默认返回 <a class=\"reference internal\" href=\"#django.views.generic.edit.FormMixin.success_url\" title=\"django.views.generic.edit.FormMixin.success_url\"><code class=\"xref py py-attr docutils literal notranslate\">success_url</code></a>。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.FormMixin.form_valid\">\n<span class=\"sig-name descname\">form_valid</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">form</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.FormMixin.form_valid\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>重定向到 <a class=\"reference internal\" href=\"#django.views.generic.edit.FormMixin.get_success_url\" title=\"django.views.generic.edit.FormMixin.get_success_url\"><code class=\"xref py py-meth docutils literal notranslate\">get_success_url()</code></a>。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.FormMixin.form_invalid\">\n<span class=\"sig-name descname\">form_invalid</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">form</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.FormMixin.form_invalid\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>渲染一个响应，提供无效的表单作为上下文。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.FormMixin.get_context_data\">\n<span class=\"sig-name descname\">get_context_data</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\">**</span>kwargs</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.FormMixin.get_context_data\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>调用 <a class=\"reference internal\" href=\"#django.views.generic.edit.FormMixin.get_form\" title=\"django.views.generic.edit.FormMixin.get_form\"><code class=\"xref py py-meth docutils literal notranslate\">get_form()</code></a> 并将结果添加到名为 'form' 的上下文数据中。</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"modelformmixin\">\n<h2><code class=\"docutils literal notranslate\">ModelFormMixin</code><a class=\"heading-anchor\" href=\"#modelformmixin\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.ModelFormMixin\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-prename descclassname\">django.views.generic.edit.</span><span class=\"sig-name descname\">ModelFormMixin</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.ModelFormMixin\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>一个在 <code class=\"docutils literal notranslate\">ModelForms</code> 上工作的表单混入，而不是一个独立的表单。</p>\n<p>由于这是 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin\" title=\"django.views.generic.detail.SingleObjectMixin\"><code class=\"xref py py-class docutils literal notranslate\">SingleObjectMixin</code></a> 的一个子类，所以这个混入的实例可以访问 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin.model\" title=\"django.views.generic.detail.SingleObjectMixin.model\"><code class=\"xref py py-attr docutils literal notranslate\">model</code></a> 和 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin.queryset\" title=\"django.views.generic.detail.SingleObjectMixin.queryset\"><code class=\"xref py py-attr docutils literal notranslate\">queryset</code></a> 属性，描述 <code class=\"docutils literal notranslate\">ModelForm</code> 所操纵的对象类型。</p>\n<p>如果你同时指定了 <a class=\"reference internal\" href=\"#django.views.generic.edit.ModelFormMixin.fields\" title=\"django.views.generic.edit.ModelFormMixin.fields\"><code class=\"xref py py-attr docutils literal notranslate\">fields</code></a> 和 <a class=\"reference internal\" href=\"#django.views.generic.edit.FormMixin.form_class\" title=\"django.views.generic.edit.FormMixin.form_class\"><code class=\"xref py py-attr docutils literal notranslate\">form_class</code></a> 属性，将引发 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/exceptions/#django.core.exceptions.ImproperlyConfigured\" title=\"django.core.exceptions.ImproperlyConfigured\"><code class=\"xref py py-exc docutils literal notranslate\">ImproperlyConfigured</code></a> 异常。</p>\n<p><strong>混入</strong></p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.edit.FormMixin\" title=\"django.views.generic.edit.FormMixin\"><code class=\"xref py py-class docutils literal notranslate\">django.views.generic.edit.FormMixin</code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin\" title=\"django.views.generic.detail.SingleObjectMixin\"><code class=\"xref py py-class docutils literal notranslate\">django.views.generic.detail.SingleObjectMixin</code></a></p></li>\n</ul>\n<p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">**</span></a>方法和属性*</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.ModelFormMixin.model\">\n<span class=\"sig-name descname\">model</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.ModelFormMixin.model\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>一个模型类。可以明确提供，否则将通过检查 <code class=\"docutils literal notranslate\">self.object</code> 或 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin.queryset\" title=\"django.views.generic.detail.SingleObjectMixin.queryset\"><code class=\"xref py py-attr docutils literal notranslate\">queryset</code></a> 来确定。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.ModelFormMixin.fields\">\n<span class=\"sig-name descname\">fields</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.ModelFormMixin.fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>字段名的列表。这与 <a class=\"reference internal\" href=\"/zh-hans/4.2/topics/forms/modelforms/#django.forms.ModelForm\" title=\"django.forms.ModelForm\"><code class=\"xref py py-class docutils literal notranslate\">ModelForm</code></a> 的 <code class=\"docutils literal notranslate\">Meta.fields</code> 属性的解释方式相同。</p>\n<p>如果你是自动生成表单类，这个属性是必须的（比如使用 <code class=\"docutils literal notranslate\">model</code>）。忽略这个属性将导致 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/exceptions/#django.core.exceptions.ImproperlyConfigured\" title=\"django.core.exceptions.ImproperlyConfigured\"><code class=\"xref py py-exc docutils literal notranslate\">ImproperlyConfigured</code></a> 异常。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.ModelFormMixin.success_url\">\n<span class=\"sig-name descname\">success_url</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.ModelFormMixin.success_url\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>表单处理成功后重定向到的 URL。</p>\n<p><code class=\"docutils literal notranslate\">success_url</code> 可以包含字典字符串格式，它将被插入到对象的字段属性中。例如，你可以使用 <code class=\"docutils literal notranslate\">success_url=&quot;/polls/{slug}/&quot;</code> 来重定向到一个由模型上的 <code class=\"docutils literal notranslate\">slug</code> 字段组成的 URL。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.ModelFormMixin.get_form_class\">\n<span class=\"sig-name descname\">get_form_class</span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.ModelFormMixin.get_form_class\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>检索要实例化的表单类。如果提供了 <a class=\"reference internal\" href=\"#django.views.generic.edit.FormMixin.form_class\" title=\"django.views.generic.edit.FormMixin.form_class\"><code class=\"xref py py-attr docutils literal notranslate\">form_class</code></a>，将使用该类。否则，将使用与 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin.queryset\" title=\"django.views.generic.detail.SingleObjectMixin.queryset\"><code class=\"xref py py-attr docutils literal notranslate\">queryset</code></a> 相关联的模型，或与 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin.model\" title=\"django.views.generic.detail.SingleObjectMixin.model\"><code class=\"xref py py-attr docutils literal notranslate\">model</code></a> 实例化，这取决于提供的属性。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.ModelFormMixin.get_form_kwargs\">\n<span class=\"sig-name descname\">get_form_kwargs</span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.ModelFormMixin.get_form_kwargs\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>将当前实例（<code class=\"docutils literal notranslate\">self.object</code>）添加到标准 <a class=\"reference internal\" href=\"#django.views.generic.edit.FormMixin.get_form_kwargs\" title=\"django.views.generic.edit.FormMixin.get_form_kwargs\"><code class=\"xref py py-meth docutils literal notranslate\">get_form_kwargs()</code></a> 中。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.ModelFormMixin.get_success_url\">\n<span class=\"sig-name descname\">get_success_url</span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.ModelFormMixin.get_success_url\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>当表单成功验证后，确定重定向到的 URL。如果提供了 <a class=\"reference internal\" href=\"#django.views.generic.edit.ModelFormMixin.success_url\" title=\"django.views.generic.edit.ModelFormMixin.success_url\"><code class=\"xref py py-attr docutils literal notranslate\">django.views.generic.edit.ModelFormMixin.success_url</code></a>，则返回 <a class=\"reference internal\" href=\"#django.views.generic.edit.ModelFormMixin.success_url\" title=\"django.views.generic.edit.ModelFormMixin.success_url\"><code class=\"xref py py-attr docutils literal notranslate\">django.views.generic.edit.ModelFormMixin.success_url</code></a>；否则，尝试使用对象的 <code class=\"docutils literal notranslate\">get_absolute_url()</code>。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.ModelFormMixin.form_valid\">\n<span class=\"sig-name descname\">form_valid</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">form</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.ModelFormMixin.form_valid\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>保存表单实例，为视图设置当前对象，并重定向到 <a class=\"reference internal\" href=\"#django.views.generic.edit.FormMixin.get_success_url\" title=\"django.views.generic.edit.FormMixin.get_success_url\"><code class=\"xref py py-meth docutils literal notranslate\">get_success_url()</code></a>。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.ModelFormMixin.form_invalid\">\n<span class=\"sig-name descname\">form_invalid</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">form</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.ModelFormMixin.form_invalid\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>渲染一个响应，提供无效的表单作为上下文。</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"processformview\">\n<h2><code class=\"docutils literal notranslate\">ProcessFormView</code><a class=\"heading-anchor\" href=\"#processformview\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.ProcessFormView\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-prename descclassname\">django.views.generic.edit.</span><span class=\"sig-name descname\">ProcessFormView</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.ProcessFormView\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>一个提供基本 HTTP GET 和 POST 工作流程的混入。</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>这个命名为 'ProcessFormView'，直接继承自 <code class=\"xref py py-class docutils literal notranslate\">django.view.generic.base.View</code>，但如果独立使用就会中断，所以它更像是一个混入。</p>\n</aside>\n<p><strong>扩展</strong></p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/base/#django.views.generic.base.View\" title=\"django.views.generic.base.View\"><code class=\"xref py py-class docutils literal notranslate\">django.views.generic.base.View</code></a></p></li>\n</ul>\n<p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">**</span></a>方法和属性*</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.ProcessFormView.get\">\n<span class=\"sig-name descname\">get</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">request</em>, <em class=\"sig-param\"><span class=\"o\">*</span>args</em>, <em class=\"sig-param\"><span class=\"o\">**</span>kwargs</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.ProcessFormView.get\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>使用 <a class=\"reference internal\" href=\"#django.views.generic.edit.FormMixin.get_context_data\" title=\"django.views.generic.edit.FormMixin.get_context_data\"><code class=\"xref py py-meth docutils literal notranslate\">get_context_data()</code></a> 创建的上下文来渲染响应。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.ProcessFormView.post\">\n<span class=\"sig-name descname\">post</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">request</em>, <em class=\"sig-param\"><span class=\"o\">*</span>args</em>, <em class=\"sig-param\"><span class=\"o\">**</span>kwargs</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.ProcessFormView.post\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>构造一个表单，检查表单的有效性，并进行相应的处理。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.ProcessFormView.put\">\n<span class=\"sig-name descname\">put</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\">*</span>args</em>, <em class=\"sig-param\"><span class=\"o\">**</span>kwargs</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.ProcessFormView.put\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><code class=\"docutils literal notranslate\">PUT</code> 动作也会被处理，并将所有参数传递给 <a class=\"reference internal\" href=\"#django.views.generic.edit.ProcessFormView.post\" title=\"django.views.generic.edit.ProcessFormView.post\"><code class=\"xref py py-meth docutils literal notranslate\">post()</code></a>。</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"deletionmixin\">\n<h2><code class=\"docutils literal notranslate\">DeletionMixin</code><a class=\"heading-anchor\" href=\"#deletionmixin\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.DeletionMixin\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-prename descclassname\">django.views.generic.edit.</span><span class=\"sig-name descname\">DeletionMixin</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.DeletionMixin\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>启用对 <code class=\"docutils literal notranslate\">DELETE</code> HTTP 动作的处理。</p>\n<p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">**</span></a>方法和属性*</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.DeletionMixin.success_url\">\n<span class=\"sig-name descname\">success_url</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.DeletionMixin.success_url\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>当指定对象被成功删除时，重定向到的网址。</p>\n<p><code class=\"docutils literal notranslate\">success_url</code> 可以包含字典字符串格式，它将被插入到对象的字段属性中。例如，你可以使用 <code class=\"docutils literal notranslate\">success_url=&quot;/parent/{parent_id}/&quot;</code> 重定向到一个模型上由 <code class=\"docutils literal notranslate\">parent_id</code> 字段组成的 URL。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.DeletionMixin.delete\">\n<span class=\"sig-name descname\">delete</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">request</em>, <em class=\"sig-param\"><span class=\"o\">*</span>args</em>, <em class=\"sig-param\"><span class=\"o\">**</span>kwargs</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.DeletionMixin.delete\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>检索目标对象并调用其 <code class=\"docutils literal notranslate\">delete()</code> 方法，然后重定向到成功的 URL。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.edit.DeletionMixin.get_success_url\">\n<span class=\"sig-name descname\">get_success_url</span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.edit.DeletionMixin.get_success_url\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>当指定对象被成功删除时，返回重定向到的 url。默认返回 <a class=\"reference internal\" href=\"#django.views.generic.edit.DeletionMixin.success_url\" title=\"django.views.generic.edit.DeletionMixin.success_url\"><code class=\"xref py py-attr docutils literal notranslate\">success_url</code></a>。</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>","rootId":"editing-mixins","toc":[{"title":"FormMixin","anchor":"formmixin","children":[]},{"title":"ModelFormMixin","anchor":"modelformmixin","children":[]},{"title":"ProcessFormView","anchor":"processformview","children":[]},{"title":"DeletionMixin","anchor":"deletionmixin","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"API 参考","url":"/zh-hans/4.2/ref/"},{"docname":"ref/class-based-views/index","title":"内置基于类的视图 API","url":"/zh-hans/4.2/ref/class-based-views/"},{"docname":"ref/class-based-views/mixins","title":"基于类的视图混入","url":"/zh-hans/4.2/ref/class-based-views/mixins/"}],"prev":{"docname":"ref/class-based-views/mixins-multiple-object","title":"多对象混入","url":"/zh-hans/4.2/ref/class-based-views/mixins-multiple-object/"},"next":{"docname":"ref/class-based-views/mixins-date-based","title":"基于日期的混入","url":"/zh-hans/4.2/ref/class-based-views/mixins-date-based/"},"formats":{"html":"/zh-hans/4.2/ref/class-based-views/mixins-editing/","markdown":"/zh-hans/4.2/ref/class-based-views/mixins-editing.md","json":"/zh-hans/4.2/ref/class-based-views/mixins-editing.json"},"source":"https://github.com/django/django/blob/stable/4.2.x/docs/ref/class-based-views/mixins-editing.txt","official":"https://docs.djangoproject.com/zh-hans/4.2/ref/class-based-views/mixins-editing/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0"],"inLocales":["en","zh-hans","fr","ja","id","it","pt-br","ko","es","el","pl"]}