{"title":"验证器","version":"3.1","locale":"zh-hans","docname":"ref/validators","url":"/zh-hans/3.1/ref/validators/","canonical":"https://djangodocs.dev/zh-hans/3.1/ref/validators/","summary":"验证器是一个可调用对象，它接收一个值，如果它不符合某些标准，就会引发一个 ValidationError。验证器对于在不同类型的字段之间重用验证逻辑非常有用。","html":"<span id=\"validators\"></span><h1>验证器<a class=\"heading-anchor\" href=\"#module-django.core.validators\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<section id=\"writing-validators\">\n<h2>编写验证器<a class=\"heading-anchor\" href=\"#writing-validators\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>验证器是一个可调用对象，它接收一个值，如果它不符合某些标准，就会引发一个 <a class=\"reference internal\" href=\"/zh-hans/3.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\">ValidationError</code></a>。验证器对于在不同类型的字段之间重用验证逻辑非常有用。</p>\n<p>例如，这里有一个只允许偶数的验证器：</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.core.exceptions</span> <span class=\"kn\">import</span> ValidationError\n<span class=\"kn\">from</span> <span class=\"nn\">django.utils.translation</span> <span class=\"kn\">import</span> gettext_lazy <span class=\"k\">as</span> _\n\n<span class=\"k\">def</span> <span class=\"nf\">validate_even</span><span class=\"p\">(</span>value<span class=\"p\">):</span>\n    <span class=\"k\">if</span> value <span class=\"o\">%</span> <span class=\"mi\">2</span> <span class=\"o\">!=</span> <span class=\"mi\">0</span><span class=\"p\">:</span>\n        <span class=\"k\">raise</span> ValidationError<span class=\"p\">(</span>\n            _<span class=\"p\">(</span><span class=\"s1\">&#39;</span><span class=\"si\">%(value)s</span><span class=\"s1\"> is not an even number&#39;</span><span class=\"p\">),</span>\n            params<span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s1\">&#39;value&#39;</span><span class=\"p\">:</span> value<span class=\"p\">},</span>\n        <span class=\"p\">)</span>\n</code></pre></div>\n<p>你可以通过字段的 <a class=\"reference internal\" href=\"/zh-hans/3.1/ref/models/fields/#django.db.models.Field.validators\" title=\"django.db.models.Field.validators\"><code class=\"xref py py-attr docutils literal notranslate\">validators</code></a> 参数将其添加到模型字段：</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.db</span> <span class=\"kn\">import</span> models\n\n<span class=\"k\">class</span> <span class=\"nc\">MyModel</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Model<span class=\"p\">):</span>\n    even_field <span class=\"o\">=</span> models<span class=\"o\">.</span>IntegerField<span class=\"p\">(</span>validators<span class=\"o\">=</span><span class=\"p\">[</span>validate_even<span class=\"p\">])</span>\n</code></pre></div>\n<p>因为在验证器运行之前，值已经被转换为 Python，你甚至可以在表单中使用相同的验证器：</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django</span> <span class=\"kn\">import</span> forms\n\n<span class=\"k\">class</span> <span class=\"nc\">MyForm</span><span class=\"p\">(</span>forms<span class=\"o\">.</span>Form<span class=\"p\">):</span>\n    even_field <span class=\"o\">=</span> forms<span class=\"o\">.</span>IntegerField<span class=\"p\">(</span>validators<span class=\"o\">=</span><span class=\"p\">[</span>validate_even<span class=\"p\">])</span>\n</code></pre></div>\n<p>你也可以使用一个带有 <code class=\"docutils literal notranslate\">__call__()</code> 方法的类，用于更复杂或可配置的验证器。 <a class=\"reference internal\" href=\"#django.core.validators.RegexValidator\" title=\"django.core.validators.RegexValidator\"><code class=\"xref py py-class docutils literal notranslate\">RegexValidator</code></a>，例如，使用了这种技术。如果在 <a class=\"reference internal\" href=\"/zh-hans/3.1/ref/models/fields/#django.db.models.Field.validators\" title=\"django.db.models.Field.validators\"><code class=\"xref py py-attr docutils literal notranslate\">validators</code></a> 模型字段选项中使用了一个基于类的验证器，你应该通过添加 <a class=\"reference internal\" href=\"/zh-hans/3.1/topics/migrations/#custom-deconstruct-method\"><span class=\"std std-ref\">deconstruct()</span></a> 和 <code class=\"docutils literal notranslate\">__eq__()</code> 方法来确保它是 <a class=\"reference internal\" href=\"/zh-hans/3.1/topics/migrations/#migration-serializing\"><span class=\"std std-ref\">可由迁移框架序列化</span></a>。</p>\n</section>\n<section id=\"how-validators-are-run\">\n<h2>如何运行验证器<a class=\"heading-anchor\" href=\"#how-validators-are-run\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>请参阅 <a class=\"reference internal\" href=\"/zh-hans/3.1/ref/forms/validation/\"><span class=\"doc\">表单验证器</span></a> 了解更多关于表单中如何运行验证器的信息，以及 <a class=\"reference internal\" href=\"/zh-hans/3.1/ref/models/instances/#validating-objects\"><span class=\"std std-ref\">验证对象</span></a> 了解模型中如何运行验证器。请注意，当你保存模型时，验证器不会自动运行，但如果你使用的是 <a class=\"reference internal\" href=\"/zh-hans/3.1/topics/forms/modelforms/#django.forms.ModelForm\" title=\"django.forms.ModelForm\"><code class=\"xref py py-class docutils literal notranslate\">ModelForm</code></a>，它将在你的表单中包含的任何字段上运行验证器。请参阅 <a class=\"reference internal\" href=\"/zh-hans/3.1/topics/forms/modelforms/\"><span class=\"doc\">模型表单文档</span></a>，了解模型验证如何与表单交互。</p>\n</section>\n<section id=\"built-in-validators\">\n<h2>内置验证器<a class=\"heading-anchor\" href=\"#built-in-validators\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p><a class=\"reference internal\" href=\"#module-django.core.validators\" title=\"django.core.validators: Validation utilities and base classes\"><code class=\"xref py py-mod docutils literal notranslate\">django.core.validators</code></a> 模块包含了一系列用于模型和表单字段的可调用验证器。它们是内部使用的，但也可以用于你自己的字段。它们可以作为自定义 <code class=\"docutils literal notranslate\">field.clean()</code> 方法的补充，也可以代替这些方法。</p>\n<section id=\"regexvalidator\">\n<h3><code class=\"docutils literal notranslate\">RegexValidator</code><a class=\"heading-anchor\" href=\"#regexvalidator\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.RegexValidator\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">RegexValidator</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">regex<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">message<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">code<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">inverse_match<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">flags<span class=\"o\">=</span><span class=\"default_value\">0</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.validators.RegexValidator\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><dl class=\"field-list simple\">\n<dt class=\"field-odd\">参数<span class=\"colon\">:</span></dt>\n<dd class=\"field-odd\"><ul class=\"simple\">\n<li><p><strong>regex</strong> -- 如果不是 <code class=\"docutils literal notranslate\">None</code>，则覆盖 <a class=\"reference internal\" href=\"#django.core.validators.RegexValidator.regex\" title=\"django.core.validators.RegexValidator.regex\"><code class=\"xref py py-attr docutils literal notranslate\">regex</code></a>。可以是一个正则表达式字符串或预先编译的正则表达式。</p></li>\n<li><p><strong>message</strong> -- 如果不是 <code class=\"docutils literal notranslate\">None</code>，则覆盖 <a class=\"reference internal\" href=\"#django.core.validators.RegexValidator.message\" title=\"django.core.validators.RegexValidator.message\"><code class=\"xref py py-attr docutils literal notranslate\">message</code></a>。</p></li>\n<li><p><strong>code</strong> -- 如果不是 <code class=\"docutils literal notranslate\">None</code>，则覆盖 <a class=\"reference internal\" href=\"#django.core.validators.RegexValidator.code\" title=\"django.core.validators.RegexValidator.code\"><code class=\"xref py py-attr docutils literal notranslate\">code</code></a>。</p></li>\n<li><p><strong>inverse_match</strong> -- 如果不是 <code class=\"docutils literal notranslate\">None</code>，则覆盖 <a class=\"reference internal\" href=\"#django.core.validators.RegexValidator.inverse_match\" title=\"django.core.validators.RegexValidator.inverse_match\"><code class=\"xref py py-attr docutils literal notranslate\">inverse_match</code></a>。</p></li>\n<li><p><strong>flags</strong> -- 如果不是 <code class=\"docutils literal notranslate\">None</code>，则覆盖 <a class=\"reference internal\" href=\"#django.core.validators.RegexValidator.flags\" title=\"django.core.validators.RegexValidator.flags\"><code class=\"xref py py-attr docutils literal notranslate\">flags</code></a>。在这种情况下， <a class=\"reference internal\" href=\"#django.core.validators.RegexValidator.regex\" title=\"django.core.validators.RegexValidator.regex\"><code class=\"xref py py-attr docutils literal notranslate\">regex</code></a> 必须是一个正则表达式字符串，否则会引发 <a class=\"reference external\" href=\"https://docs.python.org/3/library/exceptions.html#TypeError\" title=\"(in Python v3.14)\"><code class=\"xref py py-exc docutils literal notranslate\">TypeError</code></a>。</p></li>\n</ul>\n</dd>\n</dl>\n<p>一个 <a class=\"reference internal\" href=\"#django.core.validators.RegexValidator\" title=\"django.core.validators.RegexValidator\"><code class=\"xref py py-class docutils literal notranslate\">RegexValidator</code></a> 用 <a class=\"reference external\" href=\"https://docs.python.org/3/library/re.html#re.search\" title=\"(in Python v3.14)\"><code class=\"xref py py-func docutils literal notranslate\">re.search()</code></a> 为给定的正则表达式搜索提供的 <code class=\"docutils literal notranslate\">value</code>。默认情况下，如果没有 <strong>找到</strong> 匹配的，会引发一个 <a class=\"reference internal\" href=\"/zh-hans/3.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\">ValidationError</code></a>，包含 <a class=\"reference internal\" href=\"#django.core.validators.RegexValidator.message\" title=\"django.core.validators.RegexValidator.message\"><code class=\"xref py py-attr docutils literal notranslate\">message</code></a> 和 <a class=\"reference internal\" href=\"#django.core.validators.RegexValidator.code\" title=\"django.core.validators.RegexValidator.code\"><code class=\"xref py py-attr docutils literal notranslate\">code</code></a>。它的行为可以通过将 <a class=\"reference internal\" href=\"#django.core.validators.RegexValidator.inverse_match\" title=\"django.core.validators.RegexValidator.inverse_match\"><code class=\"xref py py-attr docutils literal notranslate\">inverse_match</code></a> 设置为 <code class=\"docutils literal notranslate\">True</code> 来反转，在这种情况下，当 <strong>找到</strong> 匹配的时，就会引发 <a class=\"reference internal\" href=\"/zh-hans/3.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\">ValidationError</code></a>。</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.RegexValidator.regex\">\n<span class=\"sig-name descname\">regex</span><a class=\"heading-anchor\" href=\"#django.core.validators.RegexValidator.regex\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>使用 <a class=\"reference external\" href=\"https://docs.python.org/3/library/re.html#re.search\" title=\"(in Python v3.14)\"><code class=\"xref py py-func docutils literal notranslate\">re.search()</code></a> 在提供的 <code class=\"docutils literal notranslate\">value</code> 中搜索的正则表达式模式。可以是一个字符串，也可以是用 <a class=\"reference external\" href=\"https://docs.python.org/3/library/re.html#re.compile\" title=\"(in Python v3.14)\"><code class=\"xref py py-func docutils literal notranslate\">re.compile()</code></a> 创建的预先编译的正则表达式。默认为空字符串，将在所有可能的 <code class=\"docutils literal notranslate\">value</code> 中找到。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.RegexValidator.message\">\n<span class=\"sig-name descname\">message</span><a class=\"heading-anchor\" href=\"#django.core.validators.RegexValidator.message\"><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/3.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\">ValidationError</code></a> 使用的错误信息。默认值为 <code class=\"docutils literal notranslate\">&quot;Enter a valid value&quot;</code>。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.RegexValidator.code\">\n<span class=\"sig-name descname\">code</span><a class=\"heading-anchor\" href=\"#django.core.validators.RegexValidator.code\"><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/3.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\">ValidationError</code></a> 验证失败时使用的错误代码。默认值为 <code class=\"docutils literal notranslate\">&quot;invalid&quot;</code>。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.RegexValidator.inverse_match\">\n<span class=\"sig-name descname\">inverse_match</span><a class=\"heading-anchor\" href=\"#django.core.validators.RegexValidator.inverse_match\"><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.core.validators.RegexValidator.regex\" title=\"django.core.validators.RegexValidator.regex\"><code class=\"xref py py-attr docutils literal notranslate\">regex</code></a> 的匹配模式。默认为 <code class=\"docutils literal notranslate\">False</code>。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.RegexValidator.flags\">\n<span class=\"sig-name descname\">flags</span><a class=\"heading-anchor\" href=\"#django.core.validators.RegexValidator.flags\"><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.core.validators.RegexValidator.regex\" title=\"django.core.validators.RegexValidator.regex\"><code class=\"xref py py-attr docutils literal notranslate\">regex</code></a> 时使用的 <a class=\"reference external\" href=\"https://docs.python.org/3/library/re.html#contents-of-module-re\" title=\"(in Python v3.14)\"><span class=\"xref std std-ref\">regex flags</span></a>。如果 <a class=\"reference internal\" href=\"#django.core.validators.RegexValidator.regex\" title=\"django.core.validators.RegexValidator.regex\"><code class=\"xref py py-attr docutils literal notranslate\">regex</code></a> 是一个预先编译的正则表达式，并且 <a class=\"reference internal\" href=\"#django.core.validators.RegexValidator.flags\" title=\"django.core.validators.RegexValidator.flags\"><code class=\"xref py py-attr docutils literal notranslate\">flags</code></a> 被覆盖，则 <a class=\"reference external\" href=\"https://docs.python.org/3/library/exceptions.html#TypeError\" title=\"(in Python v3.14)\"><code class=\"xref py py-exc docutils literal notranslate\">TypeError</code></a> 被引发。默认值为 <code class=\"docutils literal notranslate\">0</code>。</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"emailvalidator\">\n<h3><code class=\"docutils literal notranslate\">EmailValidator</code><a class=\"heading-anchor\" href=\"#emailvalidator\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.EmailValidator\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">EmailValidator</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">message<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">code<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">whitelist<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.validators.EmailValidator\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><dl class=\"field-list simple\">\n<dt class=\"field-odd\">参数<span class=\"colon\">:</span></dt>\n<dd class=\"field-odd\"><ul class=\"simple\">\n<li><p><strong>message</strong> -- 如果不是 <code class=\"docutils literal notranslate\">None</code>，则覆盖 <a class=\"reference internal\" href=\"#django.core.validators.EmailValidator.message\" title=\"django.core.validators.EmailValidator.message\"><code class=\"xref py py-attr docutils literal notranslate\">message</code></a>。</p></li>\n<li><p><strong>code</strong> -- 如果不是 <code class=\"docutils literal notranslate\">None</code>，则覆盖 <a class=\"reference internal\" href=\"#django.core.validators.EmailValidator.code\" title=\"django.core.validators.EmailValidator.code\"><code class=\"xref py py-attr docutils literal notranslate\">code</code></a>。</p></li>\n<li><p><strong>whitelist</strong> -- 如果不是 <code class=\"docutils literal notranslate\">None</code>，则覆盖 <a class=\"reference internal\" href=\"#django.core.validators.EmailValidator.whitelist\" title=\"django.core.validators.EmailValidator.whitelist\"><code class=\"xref py py-attr docutils literal notranslate\">whitelist</code></a>。</p></li>\n</ul>\n</dd>\n</dl>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.EmailValidator.message\">\n<span class=\"sig-name descname\">message</span><a class=\"heading-anchor\" href=\"#django.core.validators.EmailValidator.message\"><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/3.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\">ValidationError</code></a> 使用的错误信息。默认为 <code class=\"docutils literal notranslate\">&quot;Enter a valid email address&quot;</code>。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.EmailValidator.code\">\n<span class=\"sig-name descname\">code</span><a class=\"heading-anchor\" href=\"#django.core.validators.EmailValidator.code\"><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/3.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\">ValidationError</code></a> 验证失败时使用的错误代码。默认值为 <code class=\"docutils literal notranslate\">&quot;invalid&quot;</code>。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.EmailValidator.whitelist\">\n<span class=\"sig-name descname\">whitelist</span><a class=\"heading-anchor\" href=\"#django.core.validators.EmailValidator.whitelist\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>要允许的电子邮件域的白名单。默认情况下，一个正则表达式 （<code class=\"docutils literal notranslate\">domain_regex</code> 属性）被用来验证 &#64; 符号后的任何内容。但是，如果该字符串出现在白名单中，这种验证将被绕过。如果没有提供，默认的白名单是 <code class=\"docutils literal notranslate\">['localhost']</code>。其他不包含点号的域名将不会通过验证，所以你需要根据需要将其列入白名单。</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"urlvalidator\">\n<h3><code class=\"docutils literal notranslate\">URLValidator</code><a class=\"heading-anchor\" href=\"#urlvalidator\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.URLValidator\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">URLValidator</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">schemes<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">regex<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">message<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">code<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.validators.URLValidator\"><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.core.validators.RegexValidator\" title=\"django.core.validators.RegexValidator\"><code class=\"xref py py-class docutils literal notranslate\">RegexValidator</code></a> 子类，确保一个值看起来像一个 URL，如果不像，则引发 <code class=\"docutils literal notranslate\">'invalid'</code> 的错误代码。</p>\n<p>回环地址和保留的 IP 空间被认为是有效的。字面 IPv6 地址（<span class=\"target\" id=\"index-2\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc3986.html#section-3.2.2\"><strong>RFC 3986 Section 3.2.2</strong></a>）和 Unicode 域都支持。</p>\n<p>除了它的父类 <a class=\"reference internal\" href=\"#django.core.validators.RegexValidator\" title=\"django.core.validators.RegexValidator\"><code class=\"xref py py-class docutils literal notranslate\">RegexValidator</code></a> 的可选参数外，<code class=\"docutils literal notranslate\">URLValidator</code> 还接受一个额外的可选属性：</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.URLValidator.schemes\">\n<span class=\"sig-name descname\">schemes</span><a class=\"heading-anchor\" href=\"#django.core.validators.URLValidator.schemes\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>要验证的 URL／URI 协议列表。如果没有提供，默认列表是 <code class=\"docutils literal notranslate\">['http', 'https', 'ftp', 'ftps']</code>。作为参考，IANA 网站提供了一个完整的 <a class=\"reference external\" href=\"https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml\">有效 URI 协议</a> 列表。</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"validate-email\">\n<h3><code class=\"docutils literal notranslate\">validate_email</code><a class=\"heading-anchor\" href=\"#validate-email\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.validate_email\">\n<span class=\"sig-name descname\">validate_email</span><a class=\"heading-anchor\" href=\"#django.core.validators.validate_email\"><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.core.validators.EmailValidator\" title=\"django.core.validators.EmailValidator\"><code class=\"xref py py-class docutils literal notranslate\">EmailValidator</code></a> 实例，没有任何自定义。</p>\n</dd></dl>\n\n</section>\n<section id=\"validate-slug\">\n<h3><code class=\"docutils literal notranslate\">validate_slug</code><a class=\"heading-anchor\" href=\"#validate-slug\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.validate_slug\">\n<span class=\"sig-name descname\">validate_slug</span><a class=\"heading-anchor\" href=\"#django.core.validators.validate_slug\"><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.core.validators.RegexValidator\" title=\"django.core.validators.RegexValidator\"><code class=\"xref py py-class docutils literal notranslate\">RegexValidator</code></a> 实例，确保一个值只由字母、数字、下划线或连字符组成。</p>\n</dd></dl>\n\n</section>\n<section id=\"validate-unicode-slug\">\n<h3><code class=\"docutils literal notranslate\">validate_unicode_slug</code><a class=\"heading-anchor\" href=\"#validate-unicode-slug\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.validate_unicode_slug\">\n<span class=\"sig-name descname\">validate_unicode_slug</span><a class=\"heading-anchor\" href=\"#django.core.validators.validate_unicode_slug\"><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.core.validators.RegexValidator\" title=\"django.core.validators.RegexValidator\"><code class=\"xref py py-class docutils literal notranslate\">RegexValidator</code></a> 实例，确保一个值只由 Unicode 字母、数字、下划线或连字符组成。</p>\n</dd></dl>\n\n</section>\n<section id=\"validate-ipv4-address\">\n<h3><code class=\"docutils literal notranslate\">validate_ipv4_address</code><a class=\"heading-anchor\" href=\"#validate-ipv4-address\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.validate_ipv4_address\">\n<span class=\"sig-name descname\">validate_ipv4_address</span><a class=\"heading-anchor\" href=\"#django.core.validators.validate_ipv4_address\"><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.core.validators.RegexValidator\" title=\"django.core.validators.RegexValidator\"><code class=\"xref py py-class docutils literal notranslate\">RegexValidator</code></a> 实例，确保一个值看起来像一个 IPv4 地址。</p>\n</dd></dl>\n\n</section>\n<section id=\"validate-ipv6-address\">\n<h3><code class=\"docutils literal notranslate\">validate_ipv6_address</code><a class=\"heading-anchor\" href=\"#validate-ipv6-address\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.validate_ipv6_address\">\n<span class=\"sig-name descname\">validate_ipv6_address</span><a class=\"heading-anchor\" href=\"#django.core.validators.validate_ipv6_address\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>使用 <code class=\"docutils literal notranslate\">django.utils.ipv6</code> 来检查 IPv6 地址的有效性。</p>\n</dd></dl>\n\n</section>\n<section id=\"validate-ipv46-address\">\n<h3><code class=\"docutils literal notranslate\">validate_ipv46_address</code><a class=\"heading-anchor\" href=\"#validate-ipv46-address\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.validate_ipv46_address\">\n<span class=\"sig-name descname\">validate_ipv46_address</span><a class=\"heading-anchor\" href=\"#django.core.validators.validate_ipv46_address\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>使用 <code class=\"docutils literal notranslate\">validate_ipv4_address</code> 和 <code class=\"docutils literal notranslate\">validate_ipv6_address</code> 来确保一个值是有效的 IPv4 或 IPv6 地址。</p>\n</dd></dl>\n\n</section>\n<section id=\"validate-comma-separated-integer-list\">\n<h3><code class=\"docutils literal notranslate\">validate_comma_separated_integer_list</code><a class=\"heading-anchor\" href=\"#validate-comma-separated-integer-list\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.validate_comma_separated_integer_list\">\n<span class=\"sig-name descname\">validate_comma_separated_integer_list</span><a class=\"heading-anchor\" href=\"#django.core.validators.validate_comma_separated_integer_list\"><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.core.validators.RegexValidator\" title=\"django.core.validators.RegexValidator\"><code class=\"xref py py-class docutils literal notranslate\">RegexValidator</code></a> 实例，确保一个值是一个逗号分隔的整数列表。</p>\n</dd></dl>\n\n</section>\n<section id=\"int-list-validator\">\n<h3><code class=\"docutils literal notranslate\">int_list_validator</code><a class=\"heading-anchor\" href=\"#int-list-validator\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.int_list_validator\">\n<span class=\"sig-name descname\">int_list_validator</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">sep<span class=\"o\">=</span><span class=\"default_value\">','</span></em>, <em class=\"sig-param\">message<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">code<span class=\"o\">=</span><span class=\"default_value\">'invalid'</span></em>, <em class=\"sig-param\">allow_negative<span class=\"o\">=</span><span class=\"default_value\">False</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.validators.int_list_validator\"><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.core.validators.RegexValidator\" title=\"django.core.validators.RegexValidator\"><code class=\"xref py py-class docutils literal notranslate\">RegexValidator</code></a> 实例，以确保字符串由 <code class=\"docutils literal notranslate\">sep</code> 分隔的整数组成。当 <code class=\"docutils literal notranslate\">allow_negative</code> 为 <code class=\"docutils literal notranslate\">True</code> 时，它允许负整数。</p>\n</dd></dl>\n\n</section>\n<section id=\"maxvaluevalidator\">\n<h3><code class=\"docutils literal notranslate\">MaxValueValidator</code><a class=\"heading-anchor\" href=\"#maxvaluevalidator\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.MaxValueValidator\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">MaxValueValidator</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">limit_value</em>, <em class=\"sig-param\">message<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.validators.MaxValueValidator\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>如果 <code class=\"docutils literal notranslate\">value</code> 大于 <code class=\"docutils literal notranslate\">limit_value</code>，会引发一个 <a class=\"reference internal\" href=\"/zh-hans/3.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\">ValidationError</code></a>，代码为 <code class=\"docutils literal notranslate\">'max_value'</code>，这可能是一个可调用对象。</p>\n</dd></dl>\n\n</section>\n<section id=\"minvaluevalidator\">\n<h3><code class=\"docutils literal notranslate\">MinValueValidator</code><a class=\"heading-anchor\" href=\"#minvaluevalidator\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.MinValueValidator\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">MinValueValidator</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">limit_value</em>, <em class=\"sig-param\">message<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.validators.MinValueValidator\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>如果 <code class=\"docutils literal notranslate\">value</code> 小于 <code class=\"docutils literal notranslate\">limit_value</code>，会引发一个 <a class=\"reference internal\" href=\"/zh-hans/3.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\">ValidationError</code></a>，代码为 <code class=\"docutils literal notranslate\">'min_value'</code>，这可能是一个可调用对象。</p>\n</dd></dl>\n\n</section>\n<section id=\"maxlengthvalidator\">\n<h3><code class=\"docutils literal notranslate\">MaxLengthValidator</code><a class=\"heading-anchor\" href=\"#maxlengthvalidator\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.MaxLengthValidator\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">MaxLengthValidator</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">limit_value</em>, <em class=\"sig-param\">message<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.validators.MaxLengthValidator\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>如果 <code class=\"docutils literal notranslate\">value</code> 的长度大于 <code class=\"docutils literal notranslate\">limit_value</code>，会引发一个 <a class=\"reference internal\" href=\"/zh-hans/3.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\">ValidationError</code></a>，代码为 <code class=\"docutils literal notranslate\">'max_length'</code>。</p>\n</dd></dl>\n\n</section>\n<section id=\"minlengthvalidator\">\n<h3><code class=\"docutils literal notranslate\">MinLengthValidator</code><a class=\"heading-anchor\" href=\"#minlengthvalidator\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.MinLengthValidator\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">MinLengthValidator</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">limit_value</em>, <em class=\"sig-param\">message<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.validators.MinLengthValidator\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>如果 <code class=\"docutils literal notranslate\">value</code> 小于 <code class=\"docutils literal notranslate\">limit_value</code>，会引发一个 <a class=\"reference internal\" href=\"/zh-hans/3.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\">ValidationError</code></a>，代码为 <code class=\"docutils literal notranslate\">'min_length'</code>，这可能是一个可调用对象。</p>\n</dd></dl>\n\n</section>\n<section id=\"decimalvalidator\">\n<h3><code class=\"docutils literal notranslate\">DecimalValidator</code><a class=\"heading-anchor\" href=\"#decimalvalidator\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.DecimalValidator\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">DecimalValidator</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">max_digits</em>, <em class=\"sig-param\">decimal_places</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.validators.DecimalValidator\"><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/3.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\">ValidationError</code></a>，代码如下：</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\">'max_digits'</code>，如果数字数量大于 <code class=\"docutils literal notranslate\">max_digits</code>。</p></li>\n<li><p><code class=\"docutils literal notranslate\">'max_decimal_places'</code>，如果小数的数量大于 <code class=\"docutils literal notranslate\">decimal_places</code>。</p></li>\n<li><p><code class=\"docutils literal notranslate\">'max_whole_digits'</code>，如果整数位数大于 <code class=\"docutils literal notranslate\">max_digits</code> 和 <code class=\"docutils literal notranslate\">decimal_places</code> 之间的差值。</p></li>\n</ul>\n</dd></dl>\n\n</section>\n<section id=\"fileextensionvalidator\">\n<h3><code class=\"docutils literal notranslate\">FileExtensionValidator</code><a class=\"heading-anchor\" href=\"#fileextensionvalidator\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.FileExtensionValidator\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">FileExtensionValidator</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">allowed_extensions</em>, <em class=\"sig-param\">message</em>, <em class=\"sig-param\">code</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.validators.FileExtensionValidator\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>如果 <code class=\"docutils literal notranslate\">value.name</code> （<code class=\"docutils literal notranslate\">value</code> 是一个 <code class=\"xref py py-class docutils literal notranslate\">File`</code>）的扩展名没有在 <code class=\"docutils literal notranslate\">allowed_extensions</code> 中找到，会引发一个 <a class=\"reference internal\" href=\"/zh-hans/3.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\">ValidationError</code></a>，代码为 <code class=\"docutils literal notranslate\">'invalid_extension'</code>。该扩展名将与 <code class=\"docutils literal notranslate\">allowed_extensions</code> 进行不区分大小写的比较。</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Warning</p>\n<p>不要依赖文件扩展名的验证来确定文件的类型。文件可以重命名为任何扩展名，无论它们包含什么数据。</p>\n</aside>\n</dd></dl>\n\n</section>\n<section id=\"validate-image-file-extension\">\n<h3><code class=\"docutils literal notranslate\">validate_image_file_extension</code><a class=\"heading-anchor\" href=\"#validate-image-file-extension\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.validate_image_file_extension\">\n<span class=\"sig-name descname\">validate_image_file_extension</span><a class=\"heading-anchor\" href=\"#django.core.validators.validate_image_file_extension\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>使用 Pillow 确保 <code class=\"docutils literal notranslate\">value.name</code> （<code class=\"docutils literal notranslate\">value</code> 是一个 <a class=\"reference internal\" href=\"/zh-hans/3.1/ref/files/file/#django.core.files.File\" title=\"django.core.files.File\"><code class=\"xref py py-class docutils literal notranslate\">File</code></a>）具有 <a class=\"reference external\" href=\"https://pillow.readthedocs.io/en/latest/handbook/image-file-formats.html\">一个有效的图像扩展名</a> 。</p>\n</dd></dl>\n\n</section>\n<section id=\"prohibitnullcharactersvalidator\">\n<h3><code class=\"docutils literal notranslate\">ProhibitNullCharactersValidator</code><a class=\"heading-anchor\" href=\"#prohibitnullcharactersvalidator\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.ProhibitNullCharactersValidator\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">ProhibitNullCharactersValidator</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">message<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">code<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.validators.ProhibitNullCharactersValidator\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>如果 <code class=\"docutils literal notranslate\">str(value)</code> 包含一个或多个空字符（<code class=\"docutils literal notranslate\">'/x00'</code>），会引发一个 <a class=\"reference internal\" href=\"/zh-hans/3.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\">ValidationError</code></a>。</p>\n<dl class=\"field-list simple\">\n<dt class=\"field-odd\">参数<span class=\"colon\">:</span></dt>\n<dd class=\"field-odd\"><ul class=\"simple\">\n<li><p><strong>message</strong> -- 如果不是 <code class=\"docutils literal notranslate\">None</code>，则覆盖 <a class=\"reference internal\" href=\"#django.core.validators.ProhibitNullCharactersValidator.message\" title=\"django.core.validators.ProhibitNullCharactersValidator.message\"><code class=\"xref py py-attr docutils literal notranslate\">message</code></a>。</p></li>\n<li><p><strong>code</strong> -- 如果不是 <code class=\"docutils literal notranslate\">None</code>，则覆盖 <a class=\"reference internal\" href=\"#django.core.validators.ProhibitNullCharactersValidator.code\" title=\"django.core.validators.ProhibitNullCharactersValidator.code\"><code class=\"xref py py-attr docutils literal notranslate\">code</code></a>。</p></li>\n</ul>\n</dd>\n</dl>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.ProhibitNullCharactersValidator.message\">\n<span class=\"sig-name descname\">message</span><a class=\"heading-anchor\" href=\"#django.core.validators.ProhibitNullCharactersValidator.message\"><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/3.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\">ValidationError</code></a> 使用的错误信息。默认值为 <code class=\"docutils literal notranslate\">&quot;Null characters are not allowed.&quot;</code>。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.ProhibitNullCharactersValidator.code\">\n<span class=\"sig-name descname\">code</span><a class=\"heading-anchor\" href=\"#django.core.validators.ProhibitNullCharactersValidator.code\"><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/3.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\">ValidationError</code></a> 所使用的错误代码。默认为 <code class=\"docutils literal notranslate\">&quot;null_characters_not_allowed&quot;</code>。</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n</section>","rootId":"module-django.core.validators","toc":[{"title":"编写验证器","anchor":"writing-validators","children":[]},{"title":"如何运行验证器","anchor":"how-validators-are-run","children":[]},{"title":"内置验证器","anchor":"built-in-validators","children":[{"title":"RegexValidator","anchor":"regexvalidator","children":[]},{"title":"EmailValidator","anchor":"emailvalidator","children":[]},{"title":"URLValidator","anchor":"urlvalidator","children":[]},{"title":"validate_email","anchor":"validate-email","children":[]},{"title":"validate_slug","anchor":"validate-slug","children":[]},{"title":"validate_unicode_slug","anchor":"validate-unicode-slug","children":[]},{"title":"validate_ipv4_address","anchor":"validate-ipv4-address","children":[]},{"title":"validate_ipv6_address","anchor":"validate-ipv6-address","children":[]},{"title":"validate_ipv46_address","anchor":"validate-ipv46-address","children":[]},{"title":"validate_comma_separated_integer_list","anchor":"validate-comma-separated-integer-list","children":[]},{"title":"int_list_validator","anchor":"int-list-validator","children":[]},{"title":"MaxValueValidator","anchor":"maxvaluevalidator","children":[]},{"title":"MinValueValidator","anchor":"minvaluevalidator","children":[]},{"title":"MaxLengthValidator","anchor":"maxlengthvalidator","children":[]},{"title":"MinLengthValidator","anchor":"minlengthvalidator","children":[]},{"title":"DecimalValidator","anchor":"decimalvalidator","children":[]},{"title":"FileExtensionValidator","anchor":"fileextensionvalidator","children":[]},{"title":"validate_image_file_extension","anchor":"validate-image-file-extension","children":[]},{"title":"ProhibitNullCharactersValidator","anchor":"prohibitnullcharactersvalidator","children":[]}]}],"breadcrumbs":[{"docname":"ref/index","title":"API 参考","url":"/zh-hans/3.1/ref/"}],"prev":{"docname":"ref/utils","title":"Django 实用程序","url":"/zh-hans/3.1/ref/utils/"},"next":{"docname":"ref/views","title":"内置视图","url":"/zh-hans/3.1/ref/views/"},"formats":{"html":"/zh-hans/3.1/ref/validators/","markdown":"/zh-hans/3.1/ref/validators.md","json":"/zh-hans/3.1/ref/validators.json"},"source":"https://github.com/django/django/blob/stable/3.1.x/docs/ref/validators.txt","official":"https://docs.djangoproject.com/zh-hans/3.1/ref/validators/","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","pt-br","ko","es","el","pl"]}