{"title":"Validators","version":"2.1","locale":"es","docname":"ref/validators","url":"/es/2.1/ref/validators/","canonical":"https://djangodocs.dev/es/2.1/ref/validators/","summary":"Writing validators Link to this heading # A validator is a callable that takes a value and raises a ValidationError if it doesn’t meet some criteria. Validators can…","html":"<span id=\"validators\"></span><h1>Validators<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>Writing validators<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 validator is a callable that takes a value and raises a\n<a class=\"reference internal\" href=\"/es/2.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code></a> if it doesn’t meet some\ncriteria. Validators can be useful for re-using validation logic between\ndifferent types of fields.</p>\n<p>For example, here’s a validator that only allows even numbers:</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=\"w\"> </span><span class=\"nn\">django.core.exceptions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">ValidationError</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils.translation</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">gettext_lazy</span> <span class=\"k\">as</span> <span class=\"n\">_</span>\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">validate_even</span><span class=\"p\">(</span><span class=\"n\">value</span><span class=\"p\">):</span>\n    <span class=\"k\">if</span> <span class=\"n\">value</span> <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> <span class=\"n\">ValidationError</span><span class=\"p\">(</span>\n            <span class=\"n\">_</span><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            <span class=\"n\">params</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s1\">&#39;value&#39;</span><span class=\"p\">:</span> <span class=\"n\">value</span><span class=\"p\">},</span>\n        <span class=\"p\">)</span>\n</code></pre></div>\n<p>You can add this to a model field via the field’s <a class=\"reference internal\" href=\"/es/2.1/ref/models/fields/#django.db.models.Field.validators\" title=\"django.db.models.Field.validators\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">validators</span></code></a>\nargument:</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=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModel</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">even_field</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">IntegerField</span><span class=\"p\">(</span><span class=\"n\">validators</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"n\">validate_even</span><span class=\"p\">])</span>\n</code></pre></div>\n<p>Because values are converted to Python before validators are run, you can even\nuse the same validator with forms:</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=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n    <span class=\"n\">even_field</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">IntegerField</span><span class=\"p\">(</span><span class=\"n\">validators</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"n\">validate_even</span><span class=\"p\">])</span>\n</code></pre></div>\n<p>You can also use a class with a <code class=\"docutils literal notranslate\"><span class=\"pre\">__call__()</span></code> method for more complex or\nconfigurable validators. <a class=\"reference internal\" href=\"#django.core.validators.RegexValidator\" title=\"django.core.validators.RegexValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RegexValidator</span></code></a>, for example, uses this\ntechnique. If a class-based validator is used in the\n<a class=\"reference internal\" href=\"/es/2.1/ref/models/fields/#django.db.models.Field.validators\" title=\"django.db.models.Field.validators\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">validators</span></code></a> model field option, you should make\nsure it is <a class=\"reference internal\" href=\"/es/2.1/topics/migrations/#migration-serializing\"><span class=\"std std-ref\">serializable by the migration framework</span></a> by adding <a class=\"reference internal\" href=\"/es/2.1/topics/migrations/#custom-deconstruct-method\"><span class=\"std std-ref\">deconstruct()</span></a> and <code class=\"docutils literal notranslate\"><span class=\"pre\">__eq__()</span></code> methods.</p>\n</section>\n<section id=\"how-validators-are-run\">\n<h2>How validators are run<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>See the <a class=\"reference internal\" href=\"/es/2.1/ref/forms/validation/\"><span class=\"doc\">form validation</span></a> for more information on\nhow validators are run in forms, and <a class=\"reference internal\" href=\"/es/2.1/ref/models/instances/#validating-objects\"><span class=\"std std-ref\">Validating objects</span></a> for how they’re run in models. Note that validators will\nnot be run automatically when you save a model, but if you are using a\n<a class=\"reference internal\" href=\"/es/2.1/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>, it will run your validators on any fields\nthat are included in your form. See the\n<a class=\"reference internal\" href=\"/es/2.1/topics/forms/modelforms/\"><span class=\"doc\">ModelForm documentation</span></a> for information on\nhow model validation interacts with forms.</p>\n</section>\n<section id=\"built-in-validators\">\n<h2>Built-in validators<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>The <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\"><span class=\"pre\">django.core.validators</span></code></a> module contains a collection of callable\nvalidators for use with model and form fields. They’re used internally but\nare available for use with your own fields, too. They can be used in addition\nto, or in lieu of custom <code class=\"docutils literal notranslate\"><span class=\"pre\">field.clean()</span></code> methods.</p>\n<section id=\"regexvalidator\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">RegexValidator</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">RegexValidator</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">regex</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">message</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">code</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">inverse_match</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">flags</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">0</span></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\">Parámetros<span class=\"colon\">:</span></dt>\n<dd class=\"field-odd\"><ul class=\"simple\">\n<li><p><strong>regex</strong> – If not <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, overrides <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\"><span class=\"pre\">regex</span></code></a>. Can be a regular\nexpression string or a pre-compiled regular expression.</p></li>\n<li><p><strong>message</strong> – If not <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, overrides <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\"><span class=\"pre\">message</span></code></a>.</p></li>\n<li><p><strong>code</strong> – If not <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, overrides <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\"><span class=\"pre\">code</span></code></a>.</p></li>\n<li><p><strong>inverse_match</strong> – If not <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, overrides <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\"><span class=\"pre\">inverse_match</span></code></a>.</p></li>\n<li><p><strong>flags</strong> – If not <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, overrides <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\"><span class=\"pre\">flags</span></code></a>. In that case,\n<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\"><span class=\"pre\">regex</span></code></a> must be a regular expression string, or\n<a class=\"reference external\" href=\"https://docs.python.org/3/library/exceptions.html#TypeError\" title=\"(en Python versión 3.14)\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">TypeError</span></code></a> is raised.</p></li>\n</ul>\n</dd>\n</dl>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.validators.RegexValidator.regex\">\n<span class=\"sig-name descname\"><span class=\"pre\">regex</span></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>The regular expression pattern to search for within the provided\n<code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code>, or a pre-compiled regular expression. By default, raises a\n<a class=\"reference internal\" href=\"/es/2.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code></a> with <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\"><span class=\"pre\">message</span></code></a>\nand <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\"><span class=\"pre\">code</span></code></a> if a match is not found. That standard behavior can\nbe reversed by setting <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\"><span class=\"pre\">inverse_match</span></code></a> to <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, in which case\nthe <a class=\"reference internal\" href=\"/es/2.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code></a> is raised when a\nmatch <strong>is</strong> found. By default, matches any string (including an empty\nstring).</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\"><span class=\"pre\">message</span></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>The error message used by\n<a class=\"reference internal\" href=\"/es/2.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code></a> if validation fails.\nDefaults to <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;Enter</span> <span class=\"pre\">a</span> <span class=\"pre\">valid</span> <span class=\"pre\">value&quot;</span></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\"><span class=\"pre\">code</span></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>The error code used by <a class=\"reference internal\" href=\"/es/2.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code></a>\nif validation fails. Defaults to <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;invalid&quot;</span></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\"><span class=\"pre\">inverse_match</span></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>The match mode for <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\"><span class=\"pre\">regex</span></code></a>. Defaults to <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></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\"><span class=\"pre\">flags</span></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>The flags used when compiling the regular expression string\n<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\"><span class=\"pre\">regex</span></code></a>. If <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\"><span class=\"pre\">regex</span></code></a> is a pre-compiled regular expression,\nand <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\"><span class=\"pre\">flags</span></code></a> is overridden, <a class=\"reference external\" href=\"https://docs.python.org/3/library/exceptions.html#TypeError\" title=\"(en Python versión 3.14)\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">TypeError</span></code></a> is raised. Defaults\nto <code class=\"docutils literal notranslate\"><span class=\"pre\">0</span></code>.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"emailvalidator\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">EmailValidator</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">EmailValidator</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">message</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">code</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">whitelist</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.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\">Parámetros<span class=\"colon\">:</span></dt>\n<dd class=\"field-odd\"><ul class=\"simple\">\n<li><p><strong>message</strong> – If not <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, overrides <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\"><span class=\"pre\">message</span></code></a>.</p></li>\n<li><p><strong>code</strong> – If not <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, overrides <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\"><span class=\"pre\">code</span></code></a>.</p></li>\n<li><p><strong>whitelist</strong> – If not <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, overrides <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\"><span class=\"pre\">whitelist</span></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\"><span class=\"pre\">message</span></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>The error message used by\n<a class=\"reference internal\" href=\"/es/2.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code></a> if validation fails.\nDefaults to <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;Enter</span> <span class=\"pre\">a</span> <span class=\"pre\">valid</span> <span class=\"pre\">email</span> <span class=\"pre\">address&quot;</span></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\"><span class=\"pre\">code</span></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>The error code used by <a class=\"reference internal\" href=\"/es/2.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code></a>\nif validation fails. Defaults to <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;invalid&quot;</span></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\"><span class=\"pre\">whitelist</span></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>Whitelist of email domains to allow. By default, a regular expression\n(the <code class=\"docutils literal notranslate\"><span class=\"pre\">domain_regex</span></code> attribute) is used to validate whatever appears\nafter the &#64; sign. However, if that string appears in the whitelist, this\nvalidation is bypassed. If not provided, the default whitelist is\n<code class=\"docutils literal notranslate\"><span class=\"pre\">['localhost']</span></code>. Other domains that don’t contain a dot won’t pass\nvalidation, so you’d need to whitelist them as necessary.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"urlvalidator\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">URLValidator</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">URLValidator</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">schemes</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">regex</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">message</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">code</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.core.validators.URLValidator\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A <a class=\"reference internal\" href=\"#django.core.validators.RegexValidator\" title=\"django.core.validators.RegexValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RegexValidator</span></code></a> that ensures a value looks like a URL, and raises\nan error code of <code class=\"docutils literal notranslate\"><span class=\"pre\">'invalid'</span></code> if it doesn’t.</p>\n<p>Loopback addresses and reserved IP spaces are considered valid. Literal\nIPv6 addresses (<span class=\"target\" id=\"index-0\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc2732.html\"><strong>RFC 2732</strong></a>) and unicode domains are both supported.</p>\n<p>In addition to the optional arguments of its parent <a class=\"reference internal\" href=\"#django.core.validators.RegexValidator\" title=\"django.core.validators.RegexValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RegexValidator</span></code></a>\nclass, <code class=\"docutils literal notranslate\"><span class=\"pre\">URLValidator</span></code> accepts an extra optional attribute:</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\"><span class=\"pre\">schemes</span></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 scheme list to validate against. If not provided, the default\nlist is <code class=\"docutils literal notranslate\"><span class=\"pre\">['http',</span> <span class=\"pre\">'https',</span> <span class=\"pre\">'ftp',</span> <span class=\"pre\">'ftps']</span></code>. As a reference, the IANA\nwebsite provides a full list of <a class=\"reference external\" href=\"https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml\">valid URI schemes</a>.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"validate-email\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">validate_email</span></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\"><span class=\"pre\">validate_email</span></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>An <a class=\"reference internal\" href=\"#django.core.validators.EmailValidator\" title=\"django.core.validators.EmailValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">EmailValidator</span></code></a> instance without any customizations.</p>\n</dd></dl>\n\n</section>\n<section id=\"validate-slug\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">validate_slug</span></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\"><span class=\"pre\">validate_slug</span></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 <a class=\"reference internal\" href=\"#django.core.validators.RegexValidator\" title=\"django.core.validators.RegexValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RegexValidator</span></code></a> instance that ensures a value consists of only\nletters, numbers, underscores or hyphens.</p>\n</dd></dl>\n\n</section>\n<section id=\"validate-unicode-slug\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">validate_unicode_slug</span></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\"><span class=\"pre\">validate_unicode_slug</span></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 <a class=\"reference internal\" href=\"#django.core.validators.RegexValidator\" title=\"django.core.validators.RegexValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RegexValidator</span></code></a> instance that ensures a value consists of only\nUnicode letters, numbers, underscores, or hyphens.</p>\n</dd></dl>\n\n</section>\n<section id=\"validate-ipv4-address\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">validate_ipv4_address</span></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\"><span class=\"pre\">validate_ipv4_address</span></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 <a class=\"reference internal\" href=\"#django.core.validators.RegexValidator\" title=\"django.core.validators.RegexValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RegexValidator</span></code></a> instance that ensures a value looks like an IPv4\naddress.</p>\n</dd></dl>\n\n</section>\n<section id=\"validate-ipv6-address\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">validate_ipv6_address</span></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\"><span class=\"pre\">validate_ipv6_address</span></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>Uses <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.ipv6</span></code> to check the validity of an IPv6 address.</p>\n</dd></dl>\n\n</section>\n<section id=\"validate-ipv46-address\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">validate_ipv46_address</span></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\"><span class=\"pre\">validate_ipv46_address</span></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>Uses both <code class=\"docutils literal notranslate\"><span class=\"pre\">validate_ipv4_address</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">validate_ipv6_address</span></code> to\nensure a value is either a valid IPv4 or IPv6 address.</p>\n</dd></dl>\n\n</section>\n<section id=\"validate-comma-separated-integer-list\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">validate_comma_separated_integer_list</span></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\"><span class=\"pre\">validate_comma_separated_integer_list</span></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 <a class=\"reference internal\" href=\"#django.core.validators.RegexValidator\" title=\"django.core.validators.RegexValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RegexValidator</span></code></a> instance that ensures a value is a\ncomma-separated list of integers.</p>\n</dd></dl>\n\n</section>\n<section id=\"int-list-validator\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">int_list_validator</span></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\"><span class=\"pre\">int_list_validator</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">sep</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">','</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">message</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">code</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">'invalid'</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">allow_negative</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></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>Returns a <a class=\"reference internal\" href=\"#django.core.validators.RegexValidator\" title=\"django.core.validators.RegexValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RegexValidator</span></code></a> instance that ensures a string consists\nof integers separated by <code class=\"docutils literal notranslate\"><span class=\"pre\">sep</span></code>. It allows negative integers when\n<code class=\"docutils literal notranslate\"><span class=\"pre\">allow_negative</span></code> is <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>.</p>\n</dd></dl>\n\n</section>\n<section id=\"maxvaluevalidator\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">MaxValueValidator</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">MaxValueValidator</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">limit_value</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">message</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.core.validators.MaxValueValidator\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Raises a <a class=\"reference internal\" href=\"/es/2.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code></a> with a code of\n<code class=\"docutils literal notranslate\"><span class=\"pre\">'max_value'</span></code> if <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> is greater than <code class=\"docutils literal notranslate\"><span class=\"pre\">limit_value</span></code>.</p>\n</dd></dl>\n\n</section>\n<section id=\"minvaluevalidator\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">MinValueValidator</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">MinValueValidator</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">limit_value</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">message</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.core.validators.MinValueValidator\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Raises a <a class=\"reference internal\" href=\"/es/2.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code></a> with a code of\n<code class=\"docutils literal notranslate\"><span class=\"pre\">'min_value'</span></code> if <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> is less than <code class=\"docutils literal notranslate\"><span class=\"pre\">limit_value</span></code>.</p>\n</dd></dl>\n\n</section>\n<section id=\"maxlengthvalidator\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">MaxLengthValidator</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">MaxLengthValidator</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">limit_value</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">message</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.core.validators.MaxLengthValidator\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Raises a <a class=\"reference internal\" href=\"/es/2.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code></a> with a code of\n<code class=\"docutils literal notranslate\"><span class=\"pre\">'max_length'</span></code> if the length of <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> is greater than <code class=\"docutils literal notranslate\"><span class=\"pre\">limit_value</span></code>.</p>\n</dd></dl>\n\n</section>\n<section id=\"minlengthvalidator\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">MinLengthValidator</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">MinLengthValidator</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">limit_value</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">message</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.core.validators.MinLengthValidator\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Raises a <a class=\"reference internal\" href=\"/es/2.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code></a> with a code of\n<code class=\"docutils literal notranslate\"><span class=\"pre\">'min_length'</span></code> if the length of <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> is less than <code class=\"docutils literal notranslate\"><span class=\"pre\">limit_value</span></code>.</p>\n</dd></dl>\n\n</section>\n<section id=\"decimalvalidator\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DecimalValidator</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">DecimalValidator</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">max_digits</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">decimal_places</span></span></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>Raises <a class=\"reference internal\" href=\"/es/2.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code></a> with the following\ncodes:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'max_digits'</span></code> if the number of digits is larger than <code class=\"docutils literal notranslate\"><span class=\"pre\">max_digits</span></code>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'max_decimal_places'</span></code> if the number of decimals is larger than\n<code class=\"docutils literal notranslate\"><span class=\"pre\">decimal_places</span></code>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'max_whole_digits'</span></code> if the number of whole digits is larger than\nthe difference between <code class=\"docutils literal notranslate\"><span class=\"pre\">max_digits</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">decimal_places</span></code>.</p></li>\n</ul>\n</dd></dl>\n\n</section>\n<section id=\"fileextensionvalidator\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">FileExtensionValidator</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">FileExtensionValidator</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">allowed_extensions</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">message</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">code</span></span></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>Raises a <a class=\"reference internal\" href=\"/es/2.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code></a> with a code of\n<code class=\"docutils literal notranslate\"><span class=\"pre\">'invalid_extension'</span></code> if the extension of <code class=\"docutils literal notranslate\"><span class=\"pre\">value.name</span></code> (<code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> is\na <a class=\"reference internal\" href=\"/es/2.1/ref/files/file/#django.core.files.File\" title=\"django.core.files.File\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">File</span></code></a>) isn’t found in <code class=\"docutils literal notranslate\"><span class=\"pre\">allowed_extensions</span></code>.\nThe extension is compared case-insensitively with <code class=\"docutils literal notranslate\"><span class=\"pre\">allowed_extensions</span></code>.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Advertencia</p>\n<p>Don’t rely on validation of the file extension to determine a file’s\ntype. Files can be renamed to have any extension no matter what data\nthey contain.</p>\n</aside>\n</dd></dl>\n\n</section>\n<section id=\"validate-image-file-extension\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">validate_image_file_extension</span></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\"><span class=\"pre\">validate_image_file_extension</span></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>Uses Pillow to ensure that <code class=\"docutils literal notranslate\"><span class=\"pre\">value.name</span></code> (<code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> is a\n<a class=\"reference internal\" href=\"/es/2.1/ref/files/file/#django.core.files.File\" title=\"django.core.files.File\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">File</span></code></a>) has <a class=\"reference external\" href=\"https://pillow.readthedocs.io/en/latest/handbook/image-file-formats.html\">a valid image extension</a>.</p>\n</dd></dl>\n\n</section>\n<section id=\"prohibitnullcharactersvalidator\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">ProhibitNullCharactersValidator</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">ProhibitNullCharactersValidator</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">message</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">code</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.core.validators.ProhibitNullCharactersValidator\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-added\" data-version=\"2.0\">\n<p class=\"version-note-title\">New in Django 2.0</p></aside>\n<p>Raises a <a class=\"reference internal\" href=\"/es/2.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code></a> if <code class=\"docutils literal notranslate\"><span class=\"pre\">str(value)</span></code>\ncontains one or more nulls characters (<code class=\"docutils literal notranslate\"><span class=\"pre\">'\\x00'</span></code>).</p>\n<dl class=\"field-list simple\">\n<dt class=\"field-odd\">Parámetros<span class=\"colon\">:</span></dt>\n<dd class=\"field-odd\"><ul class=\"simple\">\n<li><p><strong>message</strong> – If not <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, overrides <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\"><span class=\"pre\">message</span></code></a>.</p></li>\n<li><p><strong>code</strong> – If not <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, overrides <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\"><span class=\"pre\">code</span></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\"><span class=\"pre\">message</span></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>The error message used by\n<a class=\"reference internal\" href=\"/es/2.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code></a> if validation fails.\nDefaults to <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;Null</span> <span class=\"pre\">characters</span> <span class=\"pre\">are</span> <span class=\"pre\">not</span> <span class=\"pre\">allowed.&quot;</span></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\"><span class=\"pre\">code</span></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>The error code used by <a class=\"reference internal\" href=\"/es/2.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code></a>\nif validation fails. Defaults to <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;null_characters_not_allowed&quot;</span></code>.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n</section>","rootId":"module-django.core.validators","toc":[{"title":"Writing validators","anchor":"writing-validators","children":[]},{"title":"How validators are run","anchor":"how-validators-are-run","children":[]},{"title":"Built-in validators","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 Reference","url":"/es/2.1/ref/"}],"prev":{"docname":"ref/utils","title":"Django Utils","url":"/es/2.1/ref/utils/"},"next":{"docname":"ref/views","title":"Built-in Views","url":"/es/2.1/ref/views/"},"formats":{"html":"/es/2.1/ref/validators/","markdown":"/es/2.1/ref/validators.md","json":"/es/2.1/ref/validators.json"},"source":"https://github.com/django/django/blob/stable/2.1.x/docs/ref/validators.txt","official":"https://docs.djangoproject.com/es/2.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","1.11","1.10","1.9"],"inLocales":["en","zh-hans","fr","ja","id","pt-br","ko","es","el","pl"]}