{"title":"编辑混入","version":"6.0","locale":"zh-hans","docname":"ref/class-based-views/mixins-editing","url":"/zh-hans/6.0/ref/class-based-views/mixins-editing/","canonical":"https://djangodocs.dev/zh-hans/6.0/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\"><span class=\"pre\">django.views.generic.edit.FormMixin</span></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\"><span class=\"pre\">django.views.generic.edit.ModelFormMixin</span></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\"><span class=\"pre\">django.views.generic.edit.ProcessFormView</span></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\"><span class=\"pre\">django.views.generic.edit.DeletionMixin</span></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/6.0/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\"><span class=\"pre\">FormMixin</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><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><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/6.0/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\"><span class=\"pre\">django.views.generic.base.ContextMixin</span></code></a></p></li>\n</ul>\n<p><strong>方法和属性</strong></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\"><span class=\"pre\">initial</span></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\"><span class=\"pre\">form_class</span></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\"><span class=\"pre\">success_url</span></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\"><span class=\"pre\">prefix</span></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/6.0/ref/forms/api/#django.forms.Form.prefix\" title=\"django.forms.Form.prefix\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">prefix</span></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\"><span class=\"pre\">get_initial</span></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\"><span class=\"pre\">initial</span></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\"><span class=\"pre\">get_form_class</span></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\"><span class=\"pre\">form_class</span></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\"><span class=\"pre\">get_form</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><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></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\"><span class=\"pre\">get_form_kwargs()</span></code></a> 实例化 <code class=\"docutils literal notranslate\"><span class=\"pre\">form_class</span></code>。如果没有提供 <code class=\"docutils literal notranslate\"><span class=\"pre\">form_class</span></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\"><span class=\"pre\">get_form_class()</span></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\"><span class=\"pre\">get_form_kwargs</span></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\"><span class=\"pre\">initial</span></code> 参数设置为 <a class=\"reference internal\" href=\"#django.views.generic.edit.FormMixin.get_initial\" title=\"django.views.generic.edit.FormMixin.get_initial\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_initial()</span></code></a>。如果请求是 <code class=\"docutils literal notranslate\"><span class=\"pre\">POST</span></code> 或 <code class=\"docutils literal notranslate\"><span class=\"pre\">PUT</span></code>，还将提供请求数据（<code class=\"docutils literal notranslate\"><span class=\"pre\">request.POST</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">request.FILES</span></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\"><span class=\"pre\">get_prefix</span></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/6.0/ref/forms/api/#django.forms.Form.prefix\" title=\"django.forms.Form.prefix\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">prefix</span></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\"><span class=\"pre\">prefix</span></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\"><span class=\"pre\">get_success_url</span></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\"><span class=\"pre\">success_url</span></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\"><span class=\"pre\">form_valid</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">form</span></span></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\"><span class=\"pre\">get_success_url()</span></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\"><span class=\"pre\">form_invalid</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">form</span></span></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\"><span class=\"pre\">get_context_data</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></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\"><span class=\"pre\">get_form()</span></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\"><span class=\"pre\">ModelFormMixin</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><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><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>A form mixin that provides facilities for working with a <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code>,\nrather than a standalone form.</p>\n<p>由于这是 <a class=\"reference internal\" href=\"/zh-hans/6.0/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\"><span class=\"pre\">SingleObjectMixin</span></code></a> 的一个子类，所以这个混入的实例可以访问 <a class=\"reference internal\" href=\"/zh-hans/6.0/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\"><span class=\"pre\">model</span></code></a> 和 <a class=\"reference internal\" href=\"/zh-hans/6.0/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\"><span class=\"pre\">queryset</span></code></a> 属性，描述 <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelForm</span></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\"><span class=\"pre\">fields</span></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\"><span class=\"pre\">form_class</span></code></a> 属性，将引发 <a class=\"reference internal\" href=\"/zh-hans/6.0/ref/exceptions/#django.core.exceptions.ImproperlyConfigured\" title=\"django.core.exceptions.ImproperlyConfigured\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">ImproperlyConfigured</span></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\"><span class=\"pre\">django.views.generic.edit.FormMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/6.0/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\"><span class=\"pre\">django.views.generic.detail.SingleObjectMixin</span></code></a></p></li>\n</ul>\n<p><strong>方法和属性</strong></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\"><span class=\"pre\">model</span></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\"><span class=\"pre\">self.object</span></code> 或 <a class=\"reference internal\" href=\"/zh-hans/6.0/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\"><span class=\"pre\">queryset</span></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\"><span class=\"pre\">fields</span></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/6.0/topics/forms/modelforms/#django.forms.ModelForm\" title=\"django.forms.ModelForm\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code></a> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta.fields</span></code> 属性的解释方式相同。</p>\n<p>如果你是自动生成表单类，这个属性是必须的（比如使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">model</span></code>）。忽略这个属性将导致 <a class=\"reference internal\" href=\"/zh-hans/6.0/ref/exceptions/#django.core.exceptions.ImproperlyConfigured\" title=\"django.core.exceptions.ImproperlyConfigured\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">ImproperlyConfigured</span></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\"><span class=\"pre\">success_url</span></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\"><span class=\"pre\">success_url</span></code> 可以包含字典字符串格式，它将被插入到对象的字段属性中。例如，你可以使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">success_url=&quot;/polls/{slug}/&quot;</span></code> 来重定向到一个由模型上的 <code class=\"docutils literal notranslate\"><span class=\"pre\">slug</span></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\"><span class=\"pre\">get_form_class</span></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\"><span class=\"pre\">form_class</span></code></a>，将使用该类。否则，将使用与 <a class=\"reference internal\" href=\"/zh-hans/6.0/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\"><span class=\"pre\">queryset</span></code></a> 相关联的模型，或与 <a class=\"reference internal\" href=\"/zh-hans/6.0/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\"><span class=\"pre\">model</span></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\"><span class=\"pre\">get_form_kwargs</span></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\"><span class=\"pre\">self.object</span></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\"><span class=\"pre\">get_form_kwargs()</span></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\"><span class=\"pre\">get_success_url</span></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\"><span class=\"pre\">django.views.generic.edit.ModelFormMixin.success_url</span></code></a>，则返回它；否则，尝试使用对象的 <code class=\"docutils literal notranslate\"><span class=\"pre\">get_absolute_url()</span></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\"><span class=\"pre\">form_valid</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">form</span></span></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\"><span class=\"pre\">get_success_url()</span></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\"><span class=\"pre\">form_invalid</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">form</span></span></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\"><span class=\"pre\">ProcessFormView</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><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><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\"><span class=\"pre\">django.view.generic.base.View</span></code>，但如果独立使用就会中断，所以它更像是一个混入。</p>\n</aside>\n<p><strong>扩展</strong></p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/zh-hans/6.0/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\"><span class=\"pre\">django.views.generic.base.View</span></code></a></p></li>\n</ul>\n<p><strong>方法和属性</strong></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\"><span class=\"pre\">get</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">args</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></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\"><span class=\"pre\">get_context_data()</span></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\"><span class=\"pre\">post</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">args</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></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\"><span class=\"pre\">put</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">args</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></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\"><span class=\"pre\">PUT</span></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\"><span class=\"pre\">post()</span></code></a>。</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"deletionmixin\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">DeletionMixin</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><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><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\"><span class=\"pre\">DELETE</span></code> HTTP 动作的处理。</p>\n<p><strong>方法和属性</strong></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\"><span class=\"pre\">success_url</span></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\"><span class=\"pre\">success_url</span></code> 可以包含字典字符串格式，它将被插入到对象的字段属性中。例如，你可以使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">success_url=&quot;/parent/{parent_id}/&quot;</span></code> 重定向到一个模型上由 <code class=\"docutils literal notranslate\"><span class=\"pre\">parent_id</span></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\"><span class=\"pre\">delete</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">args</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></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\"><span class=\"pre\">delete()</span></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\"><span class=\"pre\">get_success_url</span></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\"><span class=\"pre\">success_url</span></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/6.0/ref/"},{"docname":"ref/class-based-views/index","title":"内置基于类的视图 API","url":"/zh-hans/6.0/ref/class-based-views/"},{"docname":"ref/class-based-views/mixins","title":"基于类的视图混入","url":"/zh-hans/6.0/ref/class-based-views/mixins/"}],"prev":{"docname":"ref/class-based-views/mixins-multiple-object","title":"多对象混入","url":"/zh-hans/6.0/ref/class-based-views/mixins-multiple-object/"},"next":{"docname":"ref/class-based-views/mixins-date-based","title":"基于日期的混入","url":"/zh-hans/6.0/ref/class-based-views/mixins-date-based/"},"formats":{"html":"/zh-hans/6.0/ref/class-based-views/mixins-editing/","markdown":"/zh-hans/6.0/ref/class-based-views/mixins-editing.md","json":"/zh-hans/6.0/ref/class-based-views/mixins-editing.json"},"source":"https://github.com/django/django/blob/stable/6.0.x/docs/ref/class-based-views/mixins-editing.txt","official":"https://docs.djangoproject.com/zh-hans/6.0/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","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}