{"title":"系统检查框架","version":"5.2","locale":"zh-hans","docname":"ref/checks","url":"/zh-hans/5.2/ref/checks/","canonical":"https://djangodocs.dev/zh-hans/5.2/ref/checks/","summary":"系统检查框架是一套用于验证 Django 项目的静态检查。它检测常见的问题，并提供如何修复这些问题的提示。该框架是可扩展的，所以你可以很容易地添加自己的检查。 关于如何添加自己的检查并与 Django 的系统检查集成的细节，请看 系统检查主题指南 。 API 参考 Link to this heading #…","html":"<h1>系统检查框架<a class=\"heading-anchor\" href=\"#system-check-framework\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>系统检查框架是一套用于验证 Django 项目的静态检查。它检测常见的问题，并提供如何修复这些问题的提示。该框架是可扩展的，所以你可以很容易地添加自己的检查。</p>\n<p>关于如何添加自己的检查并与 Django 的系统检查集成的细节，请看 <a class=\"reference internal\" href=\"/zh-hans/5.2/topics/checks/\"><span class=\"doc\">系统检查主题指南</span></a>。</p>\n<section id=\"api-reference\">\n<h2>API 参考<a class=\"heading-anchor\" href=\"#api-reference\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"checkmessage\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">CheckMessage</span></code><a class=\"heading-anchor\" href=\"#checkmessage\"><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.checks.CheckMessage\">\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\">CheckMessage</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">level</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">msg</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">hint</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\">obj</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\">id</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.checks.CheckMessage\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>系统检查提出的警告和错误必须是 <code class=\"docutils literal notranslate\"><span class=\"pre\">CheckMessage</span></code> 的实例。一个实例封装了一个单一的可报告的错误或警告。它还提供适用于该信息的上下文和提示，以及用于过滤目的的唯一标识符。</p>\n<p>构造方法的参数：</p>\n<dl class=\"simple\">\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">level</span></code></dt><dd><p>消息的严重性。使用预定义的数值之一。<code class=\"docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">INFO</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">WARNING</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">ERROR</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">CRITICAL</span></code>。如果级别大于或等于 <code class=\"docutils literal notranslate\"><span class=\"pre\">ERROR</span></code>，那么 Django 将阻止管理命令的执行。等级小于 <code class=\"docutils literal notranslate\"><span class=\"pre\">ERROR</span></code> 的消息（即警告）会被报告到控制台，但可以被静默。</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">msg</span></code></dt><dd><p>描述问题的简短（少于 80 个字符）字符串。该字符串 <em>不应</em> 包含换行符。</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">hint</span></code></dt><dd><p>一个单行字符串，提供解决问题的提示。如果不能提供任何提示，或者提示是错误信息中不言自明的，可以省略提示，或者使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> 值。</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code></dt><dd><p>可选的。为信息提供上下文的对象（例如，发现问题的模型）。该对象应该是一个模型、字段、管理器或定义了 <code class=\"docutils literal notranslate\"><span class=\"pre\">str__()</span></code> 方法的任何其他对象。该方法在报告所有消息时使用，其结果在消息之前。</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code></dt><dd><p>可选字符串。问题的唯一标识符。标识符应遵循 <code class=\"docutils literal notranslate\"><span class=\"pre\">applabel.X001</span></code> 的模式，其中 <code class=\"docutils literal notranslate\"><span class=\"pre\">X</span></code> 是字母 <code class=\"docutils literal notranslate\"><span class=\"pre\">CEWID</span></code> 中的一个，表示消息的严重性（<code class=\"docutils literal notranslate\"><span class=\"pre\">C</span></code> 表示严重，<code class=\"docutils literal notranslate\"><span class=\"pre\">E</span></code> 表示错误等）。这个数字可由应用程序分配，但在该应用程序内应是唯一的。</p>\n</dd>\n</dl>\n<p>有一些子类可以使创建具有通用级别的消息更容易。当使用它们时，你可以省略 <code class=\"docutils literal notranslate\"><span class=\"pre\">level</span></code> 参数，因为它已被类名所隐含。</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.checks.Debug\">\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\">Debug</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">msg</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">hint</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\">obj</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\">id</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.checks.Debug\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.checks.Info\">\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\">Info</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">msg</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">hint</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\">obj</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\">id</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.checks.Info\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.checks.Warning\">\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\">Warning</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">msg</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">hint</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\">obj</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\">id</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.checks.Warning\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.checks.Error\">\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\">Error</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">msg</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">hint</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\">obj</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\">id</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.checks.Error\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.checks.Critical\">\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\">Critical</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">msg</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">hint</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\">obj</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\">id</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.checks.Critical\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n</section>\n</section>\n<section id=\"builtin-tags\">\n<span id=\"system-check-builtin-tags\"></span><h2>内置标签<a class=\"heading-anchor\" href=\"#builtin-tags\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Django 的系统检查按以下标签组织：</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">admin</span></code>：检查所有管理站点的声明。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">async_support</span></code>： 检查异步相关配置。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">caches</span></code>：检查缓存相关的配置。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">compatibility</span></code>：标记版本升级可能导致的问题。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">commands</span></code>: Checks custom management commands related configuration.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">database</span></code>：检查与数据库有关的配置问题。默认情况下不运行数据库检查，因为数据库检查的工作比普通检查的静态代码分析更多。只有通过 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/django-admin/#django-admin-migrate\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">migrate</span></code></a> 命令或在调用 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/django-admin/#django-admin-check\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">check</span></code></a> 命令时使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">--database</span></code> 选项指定配置的数据库别名时，才会运行数据库检查。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">files</span></code> ：检查文件的相关配置。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">models</span></code>：检查模型、字段和管理器定义。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">security</span></code>：检查安全相关配置。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">signals</span></code>：检查信号声明和处理器注册信息。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">sites</span></code> ： 检查 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/contrib/sites/#module-django.contrib.sites\" title=\"django.contrib.sites: Lets you operate multiple websites from the same database and Django project\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.sites</span></code></a> 配置。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">staticfiles</span></code>：检查 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/contrib/staticfiles/#module-django.contrib.staticfiles\" title=\"django.contrib.staticfiles: An app for handling static files.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.staticfiles</span></code></a> 配置。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">templates</span></code>：检查模板相关配置。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">translation</span></code>：检查翻译相关配置。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">urls</span></code>：检查 URL 配置。</p></li>\n</ul>\n<p>一些可能通过多个标签同时注册的检查项。</p>\n</section>\n<section id=\"core-system-checks\">\n<h2>核心系统检查<a class=\"heading-anchor\" href=\"#core-system-checks\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"asynchronous-support\">\n<h3>异步支持<a class=\"heading-anchor\" href=\"#asynchronous-support\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>以下检查验证了你对 <a class=\"reference internal\" href=\"/zh-hans/5.2/topics/async/\"><span class=\"doc\">异步支持</span></a> 的配置：</p>\n<ul class=\"simple\">\n<li><p><strong>async.E001</strong>：你在部署时不应该设置 <span class=\"target\" id=\"index-2\"></span><a class=\"reference internal\" href=\"/zh-hans/5.2/topics/async/#envvar-DJANGO_ALLOW_ASYNC_UNSAFE\"><code class=\"xref std std-envvar docutils literal notranslate\"><span class=\"pre\">DJANGO_ALLOW_ASYNC_UNSAFE</span></code></a> 环境变量。这将禁用 <a class=\"reference internal\" href=\"/zh-hans/5.2/topics/async/#async-safety\"><span class=\"std std-ref\">异步安全保护</span></a>。</p></li>\n</ul>\n</section>\n<section id=\"backwards-compatibility\">\n<h3>向后兼容<a class=\"heading-anchor\" href=\"#backwards-compatibility\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>兼容性检查警告那些升级 Django 后可能出现的问题。</p>\n<ul class=\"simple\">\n<li><p><strong>2_0.W001</strong>：你的 URL 模式 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;pattern&gt;</span></code> 有一个 <code class=\"docutils literal notranslate\"><span class=\"pre\">route</span></code> 包含 <code class=\"docutils literal notranslate\"><span class=\"pre\">(?P&lt;</span></code>、以 <code class=\"docutils literal notranslate\"><span class=\"pre\">^</span></code> 开始或以 <code class=\"docutils literal notranslate\"><span class=\"pre\">$</span></code> 结束。这可能是在从 <code class=\"docutils literal notranslate\"><span class=\"pre\">url()</span></code> 迁移到 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/urls/#django.urls.path\" title=\"django.urls.path\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">path()</span></code></a> 时的一个疏忽。</p></li>\n<li><p><strong>4_0.E001</strong>:从Django 4.0开始， <code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CSRF_TRUSTED_ORIGINS`设置中的值必须以一个形式开始（通常是``http://`或``https://</span></code>），但发现了``&lt;hostname&gt;``。</p></li>\n</ul>\n</section>\n<section id=\"caches\">\n<h3>缓存<a class=\"heading-anchor\" href=\"#caches\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>以下检查验证你的 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-CACHES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CACHES</span></code></a> 配置是否正确设置：</p>\n<ul class=\"simple\">\n<li><p><strong>caches.E001</strong>：你必须在你的 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-CACHES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CACHES</span></code></a> 配置中定义一个 <code class=\"docutils literal notranslate\"><span class=\"pre\">'default'</span></code> 缓存。</p></li>\n<li><p><strong>caches.W002</strong> ：你的 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;cache&gt;</span></code> 配置可能会暴露你的缓存或导致你的数据损坏，因为它的 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-CACHES-LOCATION\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LOCATION</span></code></a> 匹配／是在／包含 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-MEDIA_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MEDIA_ROOT</span></code></a> ／ <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-STATIC_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_ROOT</span></code></a> ／ <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-STATICFILES_DIRS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATICFILES_DIRS</span></code></a>。</p></li>\n<li><p><strong>caches.W003</strong> ： 你的 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;cache&gt;</span></code> 缓存 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-CACHES-LOCATION\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LOCATION</span></code></a> 是相对路径。请使用绝对路径。</p></li>\n</ul>\n</section>\n<section id=\"database\">\n<h3>数据库<a class=\"heading-anchor\" href=\"#database\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<section id=\"mysql-and-mariadb\">\n<h4>MySQL 和 MariaDB<a class=\"heading-anchor\" href=\"#mysql-and-mariadb\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>如果你使用的是 MySQL 或 MariaDB，将执行以下检查：</p>\n<ul class=\"simple\">\n<li><p><strong>mysql.E001</strong>：MySQL／MariaDB 不允许有唯一约束的 <code class=\"docutils literal notranslate\"><span class=\"pre\">CharField</span></code> 有一个 <code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code> &gt; 255。这项检查在 Django 3.1 中 <em>被改为</em> <code class=\"docutils literal notranslate\"><span class=\"pre\">mysql.W003</span></code>，因为真正的最大尺寸取决于许多因素。</p></li>\n<li><p><strong>mysql.W002</strong>：MySQL／MariaDB 数据库连接 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;alias&gt;</span></code> 未设置为严格模式。另见 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/databases/#mysql-sql-mode\"><span class=\"std std-ref\">设置 sql_mode</span></a>。</p></li>\n<li><p><strong>mysql.W003</strong>：MySQL／MariaDB 不允许有唯一约束的 <code class=\"docutils literal notranslate\"><span class=\"pre\">CharField</span></code> 有 <code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code> &gt; 255。</p></li>\n</ul>\n</section>\n</section>\n<section id=\"managing-files\">\n<h3>管理文件<a class=\"heading-anchor\" href=\"#managing-files\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>以下检查验证了你对 <a class=\"reference internal\" href=\"/zh-hans/5.2/topics/files/\"><span class=\"doc\">管理文件</span></a> 的配置：</p>\n<ul class=\"simple\">\n<li><p><strong>files.E001</strong>: <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-FILE_UPLOAD_TEMP_DIR\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FILE_UPLOAD_TEMP_DIR</span></code></a> 设置引用了不存在的目录 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;path&gt;</span></code>。</p></li>\n</ul>\n</section>\n<section id=\"model-fields\">\n<h3>模型字段<a class=\"heading-anchor\" href=\"#model-fields\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<ul class=\"simple\">\n<li><p><strong>fields.E001</strong>：字段名不能以下划线结尾。</p></li>\n<li><p><strong>fields.E002</strong>：字段名不能有 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;__&quot;</span></code>。</p></li>\n<li><p><strong>fields.E003</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">pk</span></code> 是保留关键字，不能作为字段名使用。</p></li>\n<li><p><strong>fields.E004</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">choices</span></code> 必须是一个映射（例如字典）或可迭代对象（例如列表或元组）。</p></li>\n<li><p><strong>fields.E005</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">choices</span></code> 必须是一个将实际值映射到人类可读名称的映射，或者是一个包含 <code class=\"docutils literal notranslate\"><span class=\"pre\">(实际值,</span> <span class=\"pre\">人类可读名称)</span></code> 元组的可迭代对象。</p></li>\n<li><p><strong>fields.E006</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">db_index</span></code> 必须是 <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>，<code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> 或 <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>。</p></li>\n<li><p><strong>fields.E007</strong>：主键不能有 <code class=\"docutils literal notranslate\"><span class=\"pre\">null</span> <span class=\"pre\">=</span> <span class=\"pre\">True</span></code>。</p></li>\n<li><p><strong>fields.E008</strong>：所有 <code class=\"docutils literal notranslate\"><span class=\"pre\">validators</span></code> 必须都是可调用的。</p></li>\n<li><p><strong>fields.E009</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code> 太小，无法容纳 <code class=\"docutils literal notranslate\"><span class=\"pre\">choices</span></code> 中的最长值（<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;count&gt;</span></code> 字符）。</p></li>\n<li><p><strong>fields.E010</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field&gt;</span></code> 默认值应该是一个可调用对象，而不是一个实例，这样就不会在所有字段实例之间共享。</p></li>\n<li><p><strong>fields.E011</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;database&gt;</span></code> 不支持具有表达式（<code class=\"docutils literal notranslate\"><span class=\"pre\">db_default</span></code>）的默认数据库值。</p></li>\n<li><p><strong>fields.E012</strong>: 无法在 <code class=\"docutils literal notranslate\"><span class=\"pre\">db_default</span></code> 中使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;expression&gt;</span></code>。</p></li>\n<li><p><strong>fields.E013</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">CompositePrimaryKey</span></code> must be named <code class=\"docutils literal notranslate\"><span class=\"pre\">pk</span></code>.</p></li>\n<li><p><strong>fields.E100</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">AutoField</span></code> 必须设置 primary_key=True。</p></li>\n<li><p><strong>fields.E110</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">BooleanField</span></code> 不接受空值。<em>这项检查出现在 Django 2.1 中增加对空值的支持之前</em>。</p></li>\n<li><p><strong>fields.E120</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">CharField</span></code> 必须定义一个 <code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code> 属性。</p></li>\n<li><p><strong>fields.E121</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code> 必须是个正整数。</p></li>\n<li><p><strong>fields.W122</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code> 在使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;integer</span> <span class=\"pre\">field</span> <span class=\"pre\">type&gt;</span></code> 时会被忽略。</p></li>\n<li><p><strong>fields.E130</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">DecimalField</span></code> 必须定义一个 <code class=\"docutils literal notranslate\"><span class=\"pre\">decimal_places</span></code> 属性。</p></li>\n<li><p><strong>fields.E131</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">decimal_places</span></code> 必须是个非负整数。</p></li>\n<li><p><strong>fields.E132</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">DecimalField</span></code> 必须定义一个 <code class=\"docutils literal notranslate\"><span class=\"pre\">max_digits</span></code> 属性。</p></li>\n<li><p><strong>fields.E133</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">max_digits</span></code> 必须是一个正整数。</p></li>\n<li><p><strong>fields.E134</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">max_digits</span></code> 必须大于或等于 <code class=\"docutils literal notranslate\"><span class=\"pre\">decimal_places</span></code>。</p></li>\n<li><p><strong>fields.E140</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">FilePathField</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">allow_files</span></code> 或 <code class=\"docutils literal notranslate\"><span class=\"pre\">allow_folders</span></code> 必须有一个被设为 True。</p></li>\n<li><p><strong>fields.E150</strong>: 如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">null=False</span></code>，则 <code class=\"docutils literal notranslate\"><span class=\"pre\">GenericIPAddressField</span></code> 不能具有 <code class=\"docutils literal notranslate\"><span class=\"pre\">blank=True</span></code>，因为空值将存储为 null 值。</p></li>\n<li><p><strong>fields.E160</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">auto_now</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">auto_now_add</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">default</span></code> 等选项是相互排斥的。这些选项只能有一个。</p></li>\n<li><p><strong>fields.W161</strong>：提供了固定的默认值。</p></li>\n<li><p><strong>fields.W162</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;database&gt;</span></code> 并不支持在 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field</span> <span class=\"pre\">data</span> <span class=\"pre\">type&gt;</span></code> 列上创建数据库索引。</p></li>\n<li><p><strong>fields.W163</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;database&gt;</span></code> 不支持在列上添加注释（<code class=\"docutils literal notranslate\"><span class=\"pre\">db_comment</span></code>）。</p></li>\n<li><p><strong>fields.E170</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">BinaryField</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">default</span></code> 不能是字符串。使用字节内容代替。</p></li>\n<li><p><strong>fields.E180</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;database&gt;</span></code> 不支持 <code class=\"docutils literal notranslate\"><span class=\"pre\">JSONField</span></code>。</p></li>\n<li><p><strong>fields.E190</strong> ： <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;database&gt;</span></code> 不支持对 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field_type&gt;</span></code> 进行字符序设置。</p></li>\n<li><p><strong>fields.E220</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;database&gt;</span></code> 不支持 <code class=\"docutils literal notranslate\"><span class=\"pre\">GeneratedField</span></code>。</p></li>\n<li><p><strong>fields.E221</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;database&gt;</span></code> 不支持非持久化的 <code class=\"docutils literal notranslate\"><span class=\"pre\">GeneratedField</span></code>。</p></li>\n<li><p><strong>fields.E222</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;database&gt;</span></code> 不支持持久化的 <code class=\"docutils literal notranslate\"><span class=\"pre\">GeneratedField</span></code>。</p></li>\n<li><p><strong>fields.E223</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">GeneratedField.output_field</span></code> 存在错误：...</p></li>\n<li><p><strong>fields.W224</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">GeneratedField.output_field</span></code> 存在警告：...</p></li>\n<li><p><strong>fields.E900</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">IPAddressField</span></code> 已被删除，但历史迁移中的支持除外。</p></li>\n<li><p><strong>fields.W900</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">IPAddressField</span></code> 已被废弃。在 Django 1.9 中，将取消对它的支持（除了历史迁移）。<em>这个检查出现在 Django 1.7 和 1.8 中</em>。</p></li>\n<li><p><strong>fields.W901</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">CommaSeparatedIntegerField</span></code> 已被废弃。在 Django 2.0 中，对它的支持将被删除（除了在历史迁移中）。<em>这个检查出现在 Django 1.10 和 1.11 中</em>。</p></li>\n<li><p><strong>fields.E901</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">CommaSeparatedIntegerField</span></code> 已被删除，但历史迁移中的支持除外。</p></li>\n<li><p><strong>fields.W902</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">FloatRangeField</span></code> 已被废弃，将在 Django 3.1 中删除。<em>这项检查出现在 Django 2.2 和 3.0 中</em>。</p></li>\n<li><p><strong>fields.W903</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">NullBooleanField</span></code> 已被弃用。除了在历史迁移中的支持外，在 Django 4.0 中将会移除对它的支持。<em>此检查出现在 Django 3.1 和 3.2 中</em>。</p></li>\n<li><p><strong>fields.E903</strong>：“NullBooleanField” 已被删除，但历史迁移中的支持除外。</p></li>\n<li><p><strong>fields.W904</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.fields.JSONField</span></code> 已被弃用。（除了在历史迁移中的支持外）在 Django 4.0 中将会移除对它的支持。<em>此检查出现在 Django 3.1 和 3.2 中</em>。</p></li>\n<li><p><strong>fields.E904</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.fields.JSONField</span></code> 已被移除，除了在历史迁移中的支持外。</p></li>\n<li><p><strong>fields.W905</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.fields.CICharField</span></code> 已弃用。对其的支持（除了在历史迁移中）将在 Django 5.1 中移除。<em>此检查出现在 Django 4.2 和 5.0 中</em>。</p></li>\n<li><p><strong>fields.E905</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.fields.CICharField</span></code> 已被移除，仅在历史迁移中保留支持。</p></li>\n<li><p><strong>fields.W906</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.fields.CIEmailField</span></code> 已弃用。对其的支持（除了在历史迁移中）将在 Django 5.1 中移除。<em>此检查出现在 Django 4.2 和 5.0 中</em>。</p></li>\n<li><p><strong>fields.E906</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.fields.CIEmailField</span></code> 已被移除，仅在历史迁移中保留支持。</p></li>\n<li><p><strong>fields.W907</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.fields.CITextField</span></code> 已弃用。对其的支持（除了在历史迁移中）将在 Django 5.1 中移除。<em>此检查出现在 Django 4.2 和 5.0 中</em>。</p></li>\n<li><p><strong>fields.E907</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.fields.CITextField</span></code> 已被移除，仅在历史迁移中保留支持。</p></li>\n</ul>\n<section id=\"file-fields\">\n<h4>文件字段<a class=\"heading-anchor\" href=\"#file-fields\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<ul class=\"simple\">\n<li><p><strong>fields.E200</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">unique</span></code> 不是 <code class=\"docutils literal notranslate\"><span class=\"pre\">FileField</span></code> 的有效参数。<em>这项检查在 Django 1.11 中已被删除</em>。</p></li>\n<li><p><strong>fields.E201</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">primary_key</span></code> 对于 <code class=\"docutils literal notranslate\"><span class=\"pre\">FileField</span></code> 来说不是个有效的参数。</p></li>\n<li><p><strong>fields.E202</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">FileField</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">upload_to</span></code> 参数必须是个相对路径，而不是一个相对路径。</p></li>\n<li><p><strong>fields.E210</strong>： 不能使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">ImageField</span></code>，因为未安装 Pillow。</p></li>\n</ul>\n</section>\n<section id=\"related-fields\">\n<h4>关联字段<a class=\"heading-anchor\" href=\"#related-fields\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<ul class=\"simple\">\n<li><p><strong>fields.E300</strong>：字段定义了与模型 <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>&lt;model&gt;``的关系，该模型要么没有安装，要么是抽象的。</p></li>\n<li><p><strong>fields.E301</strong> ： 字段定义了一个与 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;app_label&gt;.&lt;model&gt;</span></code> 模型的关系，该模型已被替换。</p></li>\n<li><p><strong>fields.E302</strong>: 反向访问器 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;related</span> <span class=\"pre\">model&gt;.&lt;accessor</span> <span class=\"pre\">name&gt;</span></code> 与字段名 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;app_label&gt;.&lt;model&gt;.&lt;field</span> <span class=\"pre\">name&gt;</span></code> 冲突。</p></li>\n<li><p><strong>fields.E303</strong>: 反向查询名称与字段名 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;app_label&gt;.&lt;model&gt;.&lt;field</span> <span class=\"pre\">name&gt;</span></code> 冲突。</p></li>\n<li><p><strong>fields.E304</strong>: 反向访问器 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;related</span> <span class=\"pre\">model&gt;.&lt;accessor</span> <span class=\"pre\">name&gt;</span></code> 与反向访问器 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;app_label&gt;.&lt;model&gt;.&lt;field</span> <span class=\"pre\">name&gt;</span></code> 冲突。</p></li>\n<li><p><strong>fields.E305</strong>: 反向查询名称与反向查询名称 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;app_label&gt;.&lt;model&gt;.&lt;field</span> <span class=\"pre\">name&gt;</span></code> 冲突。</p></li>\n<li><p><strong>fields.E306</strong>: 名称 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;name&gt;</span></code> 对于字段 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;.&lt;field</span> <span class=\"pre\">name&gt;</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">related_name</span></code> 是无效的。</p></li>\n<li><p><strong>fields.E307</strong>：字段 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;app</span> <span class=\"pre\">label&gt;.&lt;model&gt;.&lt;field</span> <span class=\"pre\">name&gt;</span></code> 被声明为对 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;app</span> <span class=\"pre\">label&gt;.&lt;model&gt;</span></code> 的惰性引用，但应用程序 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;app</span> <span class=\"pre\">label&gt;</span></code> 没有安装或没有提供模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code>。</p></li>\n<li><p><strong>fields.E308</strong>：反向查询名称 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;related</span> <span class=\"pre\">query</span> <span class=\"pre\">name&gt;</span></code>，不得以下划线结束。</p></li>\n<li><p><strong>fields.E309</strong>：逆向查询名称 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;related</span> <span class=\"pre\">query</span> <span class=\"pre\">name&gt;</span></code>，不得包含 <code class=\"docutils literal notranslate\"><span class=\"pre\">'__'</span></code>。</p></li>\n<li><p><strong>fields.E310</strong>：模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 上的 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field1&gt;</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field2&gt;</span></code> 等字段的子集没有唯一性。</p></li>\n<li><p><strong>fields.E311</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;.&lt;field</span> <span class=\"pre\">name&gt;</span></code> 必须是唯一的，因为它是由 <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code> 引用的。</p></li>\n<li><p><strong>fields.E312</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">to_field</span></code> <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field</span> <span class=\"pre\">name&gt;</span></code> 在相关模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;app</span> <span class=\"pre\">label&gt;.&lt;model&gt;</span></code> 上不存在。</p></li>\n<li><p><strong>fields.E320</strong>：字段规定 <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>on_delete=SET_NULL`，但不能为空。</p></li>\n<li><p><strong>fields.E321</strong>：该字段规定 <code class=\"docutils literal notranslate\"><span class=\"pre\">on_delete=SET_DEFAULT</span></code>，但没有默认值。</p></li>\n<li><p><strong>fields.E330</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code> 不能是唯一的。</p></li>\n<li><p><strong>fields.E331</strong>：字段通过模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 具体说明多对多关系，该模型尚未安装。</p></li>\n<li><p><strong>fields.E332</strong>：有中间表的多对多字段不得对称。 <em>这项检查是在 Django 3.0 之前出现的</em> 。</p></li>\n<li><p><strong>fields.E333</strong>：该模型被 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 用作中间模型，但它有两个以上的外键到 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code>，这是不明确的。你必须通过 <code class=\"docutils literal notranslate\"><span class=\"pre\">through_fields</span></code> 关键字参数指定 Django 应该使用哪两个外键。</p></li>\n<li><p><strong>fields.E334</strong>：该模型被 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 用作中间模型，但它有一个以上来自 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 的外键，这是不明确的。你必须通过 <code class=\"docutils literal notranslate\"><span class=\"pre\">through_fields</span></code> 关键字参数指定 Django 应该使用哪个外键。</p></li>\n<li><p><strong>fields.E335</strong>：该模型被 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 用作中间模型，但它有一个以上的 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 外键，这是不明确的。你必须通过 <code class=\"docutils literal notranslate\"><span class=\"pre\">through_fields</span></code> 关键字参数指定 Django 应该使用哪个外键。</p></li>\n<li><p><strong>fields.E336</strong>：该模型被 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 用作中介模型，但它没有 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 或 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 的外键。</p></li>\n<li><p><strong>fields.E337</strong>：字段规定了 <code class=\"docutils literal notranslate\"><span class=\"pre\">through_fields</span></code>，但没有提供应通过 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 用于关系的两个链接字段的名称。</p></li>\n<li><p><strong>fields.E338</strong>：中间模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;through</span> <span class=\"pre\">model&gt;</span></code>，没有字段 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field</span> <span class=\"pre\">name&gt;</span></code>。</p></li>\n<li><p><strong>fields.E339</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;.&lt;field</span> <span class=\"pre\">name&gt;</span></code> 不是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 的外键。</p></li>\n<li><p><strong>fields.E340</strong>：该字段的中间表 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;table</span> <span class=\"pre\">name&gt;</span></code> 与表名 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code>/<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;.&lt;field</span> <span class=\"pre\">name&gt;</span></code> 相冲突。</p></li>\n<li><p><strong>fields.W340</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">null</span></code> 对 <code class=\"docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code> 没有影响。</p></li>\n<li><p><strong>fields.W341</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code> 不支持 <code class=\"docutils literal notranslate\"><span class=\"pre\">validators</span></code>。</p></li>\n<li><p><strong>fields.W342</strong>：对 <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code> 设置 <code class=\"docutils literal notranslate\"><span class=\"pre\">unique=True</span></code> 与使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">OneToOneField</span></code> 效果相同。</p></li>\n<li><p><strong>fields.W343</strong>: 在具有 <code class=\"docutils literal notranslate\"><span class=\"pre\">through</span></code> 模型的 <code class=\"docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code> 上，<code class=\"docutils literal notranslate\"><span class=\"pre\">limit_choices_to</span></code> 不起作用。<em>此检查在 Django 4.0 之前出现</em>。</p></li>\n<li><p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">**</span></a>fields.W344*：该字段的中间表 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;table</span> <span class=\"pre\">name&gt;</span></code> 与表名 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code>/<a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>&lt;model&gt;.&lt;field name&gt;``相冲突。</p></li>\n<li><p><strong>fields.W345</strong>: 在具有对称关系的 <code class=\"docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code> 上，例如对 &quot;self&quot;，<code class=\"docutils literal notranslate\"><span class=\"pre\">related_name</span></code> 不起作用。</p></li>\n<li><p><strong>fields.W346</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">db_comment</span></code> 在 <code class=\"docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code> 上无效。</p></li>\n<li><p><strong>fields.E347</strong>: Field defines a relation involving model <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> which\nhas a <code class=\"docutils literal notranslate\"><span class=\"pre\">CompositePrimaryKey</span></code> and such relations are not supported.</p></li>\n</ul>\n</section>\n</section>\n<section id=\"models\">\n<h3>模型<a class=\"heading-anchor\" href=\"#models\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<ul class=\"simple\">\n<li><p><strong>models.E001</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;swappable&gt;</span></code> 不是表单 <code class=\"docutils literal notranslate\"><span class=\"pre\">app_label.app_name</span></code>。</p></li>\n<li><p><strong>models.E002</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;SETTING&gt;</span></code> 引用了 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code>，但该网站尚未安装，或者是抽象的。</p></li>\n<li><p><strong>models.E003</strong>：该模型通过中间模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;app_label&gt;.&lt;model&gt;</span></code> 有两个相同的多对多关系。</p></li>\n<li><p><strong>models.E004</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> 只有在字段也设置了 <code class=\"docutils literal notranslate\"><span class=\"pre\">primary_key=True</span></code> 的情况下才能用作字段名。</p></li>\n<li><p><strong>models.E005</strong>：父模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 中的字段 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field</span> <span class=\"pre\">name&gt;</span></code> 与父模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 中的字段 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field</span> <span class=\"pre\">name&gt;</span></code> 发生冲突。</p></li>\n<li><p><strong>models.E006</strong>: 字段 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field</span> <span class=\"pre\">name&gt;</span></code> 与模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 中的字段 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field</span> <span class=\"pre\">name&gt;</span></code> 冲突。</p></li>\n<li><p><strong>models.E007</strong>： 列名 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;column</span> <span class=\"pre\">name&gt;</span></code> 被其它字段使用的字段 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field</span> <span class=\"pre\">name&gt;</span></code> 。</p></li>\n<li><p><strong>models.E008</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">index_together</span></code> 必须是一个列表或元组。<em>此检查在 Django 5.1 之前就已存在。</em></p></li>\n<li><p><strong>models.E009</strong>: 所有 <code class=\"docutils literal notranslate\"><span class=\"pre\">index_together</span></code> 元素必须是列表或元组。<em>此检查在 Django 5.1 之前就已存在。</em></p></li>\n<li><p><strong>models.E010</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">unique_together</span></code> 必须是个列表或元组。</p></li>\n<li><p><strong>models.E011</strong>： 所有 <code class=\"docutils literal notranslate\"><span class=\"pre\">unique_together</span></code> 元素都必须是列表或元组。</p></li>\n<li><p><strong>models.E012</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">constraints/indexes/unique_together</span></code> 引用了不存在的字段 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field</span> <span class=\"pre\">name&gt;</span></code>。</p></li>\n<li><p><strong>models.E013</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">constraints/indexes/unique_together</span></code> 引用了 <code class=\"docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code> <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field</span> <span class=\"pre\">name&gt;</span></code>，但 <code class=\"docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code> 不支持该选项。</p></li>\n<li><p><strong>models.E014</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">ordering</span></code> 必须是个元组或列表（即便你只想按照一个字段进行排序）。</p></li>\n<li><p><strong>models.E015</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">ordering</span></code> 指向是不存在的字段、相关字段或查找 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field</span> <span class=\"pre\">name&gt;</span></code>。</p></li>\n<li><p><strong>models.E016</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">constraints/indexes/unique_together</span></code> 引用了字段 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field_name&gt;</span></code>，但该字段不属于模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code>。</p></li>\n<li><p><strong>models.E017</strong>：代理模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code>，包含模型字段。</p></li>\n<li><p><strong>models.E018</strong>：自动生成的列名对字段 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field&gt;</span></code> 来说太长。数据库 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;alias&gt;</span></code> 的最大长度为 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;maximum</span> <span class=\"pre\">length&gt;</span></code>。</p></li>\n<li><p><strong>models.E019</strong>：自动生成的列名对 M2M 字段 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;M2M</span> <span class=\"pre\">field&gt;</span></code> 来说太长。数据库 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;alias&gt;</span></code> 的最大长度为 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;maximum</span> <span class=\"pre\">length&gt;</span></code>。</p></li>\n<li><p><strong>models.E020</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;.check()</span></code> 类方法目前被覆盖。</p></li>\n<li><p><strong>models.E021</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">ordering</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">order_with_respect_to</span></code> 不能一起使用。</p></li>\n<li><p><strong>models.E022</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;function&gt;</span></code> 包含对 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;app</span> <span class=\"pre\">label&gt;.&lt;model&gt;</span></code> 的惰性引用，但应用 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;app</span> <span class=\"pre\">label&gt;</span></code> 没有安装或没有提供模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code>。</p></li>\n<li><p><strong>models.E023</strong>：模型名称 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 不能以下划线开头或结尾，因为它与查找语法相冲突。</p></li>\n<li><p><strong>models.E024</strong>：模型名称 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 不能包含双下划线，因为它与查找语法相冲突。</p></li>\n<li><p><strong>models.E025</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;property</span> <span class=\"pre\">name&gt;</span></code> 属性与相关字段存取器发生冲突。</p></li>\n<li><p><strong>models.E026</strong>：该模型不能有一个以上的 <code class=\"docutils literal notranslate\"><span class=\"pre\">primary_key=True</span></code> 字段。</p></li>\n<li><p><strong>models.W027</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;database&gt;</span></code> 不支持检查约束。</p></li>\n<li><p><strong>models.E028</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">db_table</span></code> <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;db_table&gt;</span></code> 被多个模型使用：<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model</span> <span class=\"pre\">list&gt;</span></code>。</p></li>\n<li><p><strong>models.E029</strong>：索引名 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;index&gt;</span></code> 对模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 不是唯一的。</p></li>\n<li><p><strong>models.E030</strong> ：索引名 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;index&gt;</span></code> 在模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model</span> <span class=\"pre\">list&gt;</span></code> 中不是唯一的。</p></li>\n<li><p><strong>models.E031</strong>：约束名称 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;constraint&gt;</span></code> 对模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 不是唯一的。</p></li>\n<li><p><strong>models.E032</strong> ： 约束名称 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;constraint&gt;</span></code> 在模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model</span> <span class=\"pre\">list&gt;</span></code> 中不是唯一的。</p></li>\n<li><p><strong>models.E033</strong>：索引名称 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;index&gt;</span></code> 不能以下划线或数字开头。</p></li>\n<li><p><strong>models.E034</strong>：索引名称 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;index&gt;</span></code> 不能长于 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;max_length&gt;</span></code> 字符。</p></li>\n<li><p><strong>models.W035</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">db_table</span></code> <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;db_table&gt;</span></code> 被多个模型使用：<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model</span> <span class=\"pre\">list&gt;</span></code>。</p></li>\n<li><p><strong>models.W036</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;database&gt;</span></code> 不支持带有条件的唯一约束。</p></li>\n<li><p><strong>models.W037</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;database&gt;</span></code> 不支持有条件的索引。</p></li>\n<li><p><strong>models.W038</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;database&gt;</span></code> 不支持可推迟的唯一约束。</p></li>\n<li><p><strong>models.W039</strong> ： <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;database&gt;</span></code> 不支持非键列的唯一约束。</p></li>\n<li><p><strong>models.W040</strong> ： <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;database&gt;</span></code> 不支持带有非键列的索引。</p></li>\n<li><p><strong>models.E041</strong> ： <code class=\"docutils literal notranslate\"><span class=\"pre\">constraints</span></code> 指向 join 字段 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field</span> <span class=\"pre\">name&gt;</span></code>。</p></li>\n<li><p><strong>models.E042</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field</span> <span class=\"pre\">name&gt;</span></code> cannot be included in the composite\nprimary key.</p></li>\n<li><p><strong>models.W042</strong> ： 在没有定义主键类型时使用的自动创建的主键，默认为 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.AutoField</span></code>。</p></li>\n<li><p><strong>models.W043</strong> ： <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;database&gt;</span></code> 不支持对表达式的索引。</p></li>\n<li><p><strong>models.W044</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;database&gt;</span></code> 不支持在表达式上的唯一约束。</p></li>\n<li><p><strong>models.W045</strong>: 检查约束 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;constraint&gt;</span></code> 包含 <code class=\"docutils literal notranslate\"><span class=\"pre\">RawSQL()</span></code> 表达式，并且在模型的 <code class=\"docutils literal notranslate\"><span class=\"pre\">full_clean()</span></code> 中不会得到验证。</p></li>\n<li><p><strong>models.W046</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;database&gt;</span></code> 不支持在表上添加注释（<code class=\"docutils literal notranslate\"><span class=\"pre\">db_table_comment</span></code>）。</p></li>\n<li><p><strong>models.W047</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;database&gt;</span></code> 不支持具有不同的空值的唯一约束。</p></li>\n<li><p><strong>models.E048</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">constraints/indexes/unique_together</span></code> refers to a\n<code class=\"docutils literal notranslate\"><span class=\"pre\">CompositePrimaryKey</span></code> <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field</span> <span class=\"pre\">name&gt;</span></code>, but <code class=\"docutils literal notranslate\"><span class=\"pre\">CompositePrimaryKey</span></code>s are\nnot supported for that option.</p></li>\n</ul>\n</section>\n<section id=\"management-commands\">\n<h3>管理命令<a class=\"heading-anchor\" href=\"#management-commands\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>The following checks verify custom management commands are correctly configured:</p>\n<ul class=\"simple\">\n<li><p><strong>commands.E001</strong>: The <code class=\"docutils literal notranslate\"><span class=\"pre\">migrate</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">makemigrations</span></code> commands must have\nthe same <code class=\"docutils literal notranslate\"><span class=\"pre\">autodetector</span></code>.</p></li>\n</ul>\n</section>\n<section id=\"security\">\n<h3>安全<a class=\"heading-anchor\" href=\"#security\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>安全检查并不能使你的网站安全。它们不会审计代码，进行入侵检测，或做任何特别复杂的事情。相反，它们有助于执行一个自动化的、唾手可得的检查清单，可以帮助你提高网站的安全性。</p>\n<p>其中一些检查可能不适合你的特定部署配置。例如，如果你在负载均衡器中进行 HTTP 到 HTTPS 的重定向，那么不断地被警告没有启用 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-SECURE_SSL_REDIRECT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_SSL_REDIRECT</span></code></a> 会很恼火。使用 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-SILENCED_SYSTEM_CHECKS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SILENCED_SYSTEM_CHECKS</span></code></a> 来关闭不需要的检查。</p>\n<p>如果使用 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/django-admin/#cmdoption-check-deploy\"><code class=\"xref std std-option docutils literal notranslate\"><span class=\"pre\">check</span> <span class=\"pre\">--deploy</span></code></a> 选项，则会运行以下检查：</p>\n<ul class=\"simple\">\n<li><p><strong>security.W001</strong>: 你的 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-MIDDLEWARE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MIDDLEWARE</span></code></a> 中没有包含 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/middleware/#django.middleware.security.SecurityMiddleware\" title=\"django.middleware.security.SecurityMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.middleware.security.SecurityMiddleware</span></code></a>，因此 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-SECURE_HSTS_SECONDS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_HSTS_SECONDS</span></code></a>、<a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-SECURE_CONTENT_TYPE_NOSNIFF\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_CONTENT_TYPE_NOSNIFF</span></code></a>、<a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-SECURE_REFERRER_POLICY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_REFERRER_POLICY</span></code></a>、<a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-SECURE_CROSS_ORIGIN_OPENER_POLICY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_CROSS_ORIGIN_OPENER_POLICY</span></code></a> 和 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-SECURE_SSL_REDIRECT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_SSL_REDIRECT</span></code></a> 设置将不会生效。</p></li>\n<li><p><strong>security.W002</strong>：你的 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-MIDDLEWARE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MIDDLEWARE</span></code></a> 中没有 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/middleware/#django.middleware.clickjacking.XFrameOptionsMiddleware\" title=\"django.middleware.clickjacking.XFrameOptionsMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.middleware.clickjacking.XFrameOptionsMiddleware</span></code></a>，因此你的页面不会使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">'x-frame-options'</span></code> 头。除非有很好的理由让你的网站以框架形式提供服务，否则你应该考虑启用这个头以帮助防止点击劫持攻击。</p></li>\n<li><p><strong>security.W003</strong>：你似乎没有通过中间件使用 Django 内置的跨站请求伪造保护功能（<a class=\"reference internal\" href=\"/zh-hans/5.2/ref/middleware/#django.middleware.csrf.CsrfViewMiddleware\" title=\"django.middleware.csrf.CsrfViewMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.middleware.csrf.CsrfViewMiddleware</span></code></a> 不在你的 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-MIDDLEWARE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MIDDLEWARE</span></code></a> 中）。启用中间件是最安全的方法，以确保你不会留下任何漏洞。</p></li>\n<li><p><strong>security.W004</strong>：你没有为 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-SECURE_HSTS_SECONDS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_HSTS_SECONDS</span></code></a> 配置设置一个值。如果你的整个网站只通过 SSL 提供服务，你可能需要考虑设置一个值并启用 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/middleware/#http-strict-transport-security\"><span class=\"std std-ref\">HTTP 严格传输安全</span></a>。一定要先阅读文档，不小心启用 HSTS 会导致严重的、不可逆转的问题</p></li>\n<li><p><strong>security.W005</strong>：你没有将 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-SECURE_HSTS_INCLUDE_SUBDOMAINS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_HSTS_INCLUDE_SUBDOMAINS</span></code></a> 设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>。如果没有这个设置，你的网站就有可能受到通过不安全连接到子域的攻击。只有当你确定你的域名的所有子域都应该只通过 SSL 来提供服务时，才将此设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>。</p></li>\n<li><p><strong>security.W006</strong>：你的 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-SECURE_CONTENT_TYPE_NOSNIFF\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_CONTENT_TYPE_NOSNIFF</span></code></a> 配置没有设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>，因此你的网页不会以 <code class=\"docutils literal notranslate\"><span class=\"pre\">'X-Content-Type-Options:</span> <span class=\"pre\">nosniff'</span></code> 头提供服务。你应该考虑启用这个头，以防止浏览器错误地识别内容类型。</p></li>\n<li><p><strong>security.W007</strong>: 你的 <code class=\"docutils literal notranslate\"><span class=\"pre\">SECURE_BROWSER_XSS_FILTER</span></code> 设置没有被设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>，因此你的页面将不会包含 <code class=\"docutils literal notranslate\"><span class=\"pre\">'X-XSS-Protection:</span> <span class=\"pre\">1;</span> <span class=\"pre\">mode=block'</span></code> 头部。你应该考虑启用这个头部以激活浏览器的 XSS 过滤，以帮助防止 XSS 攻击。<em>这个检查在 Django 3.0 中被移除，因为现代浏览器不再支持``X-XSS-Protection`` 头部</em>。</p></li>\n<li><p><strong>security.W008</strong>：你的 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-SECURE_SSL_REDIRECT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_SSL_REDIRECT</span></code></a> 配置没有设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>。除非你的网站需要通过 SSL 和非 SSL 连接，否则你可能需要将此设置设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>，或者配置一个负载平衡器或反向代理服务器，将所有连接重定向到 HTTPS。</p></li>\n<li><p><strong>security.W009</strong>: 你的 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-SECRET_KEY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECRET_KEY</span></code></a> 字符串长度小于 50 个字符，包含少于 5 个不同字符，或以 <code class=\"docutils literal notranslate\"><span class=\"pre\">'django-insecure-'</span></code> 为前缀，表明它是由 Django 自动生成的。请生成一个长且随机的值，否则 Django 的许多安全关键功能将容易受到攻击。</p></li>\n<li><p><strong>security.W010</strong>：你的 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a> 中有 <code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.session</span></code>，但你没有将 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-SESSION_COOKIE_SECURE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SESSION_COOKIE_SECURE</span></code></a> 设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>。使用仅安全的会话 cookie 可以使网络流量嗅探器更难劫持用户会话。</p></li>\n<li><p><strong>security.W011</strong>：您的 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-MIDDLEWARE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MIDDLEWARE</span></code></a> 中有 <code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.contrib.session.middleware.SessionMiddleware</span></code>，但你没有将 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-SESSION_COOKIE_SECURE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SESSION_COOKIE_SECURE</span></code></a> 设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>。使用仅安全的会话 cookie 可以使网络流量嗅探器更难劫持用户会话</p></li>\n<li><p><strong>security.W012</strong>：<a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-SESSION_COOKIE_SECURE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SESSION_COOKIE_SECURE</span></code></a> 未设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>。使用仅安全的会话 cookie 使网络流量嗅探者更难劫持用户会话。</p></li>\n<li><p><strong>security.W013</strong>：你的 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a> 中有 <code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.session</span></code>，但你没有将 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-SESSION_COOKIE_HTTPONLY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SESSION_COOKIE_HTTPONLY</span></code></a> 设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>。使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpOnly</span></code> 的会话 cookie 可以使跨站脚本攻击更难劫持用户会话。</p></li>\n<li><p><strong>security.W014</strong>：你的 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-MIDDLEWARE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MIDDLEWARE</span></code></a> 中有 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/middleware/#django.contrib.sessions.middleware.SessionMiddleware\" title=\"django.contrib.sessions.middleware.SessionMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.contrib.sessions.middleware.SessionMiddleware</span></code></a>，但你没有将 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-SESSION_COOKIE_HTTPONLY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SESSION_COOKIE_HTTPONLY</span></code></a> 设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>。使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpOnly</span></code> 的会话 cookie 可以使跨站脚本攻击更难劫持用户会话。</p></li>\n<li><p><strong>security.W015</strong>：<a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-SESSION_COOKIE_HTTPONLY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SESSION_COOKIE_HTTPONLY</span></code></a> 未设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>。使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpOnly</span></code> 的会话 cookie 使跨站脚本攻击更难劫持用户会话。</p></li>\n<li><p><strong>security.W016</strong>：<a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-CSRF_COOKIE_SECURE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CSRF_COOKIE_SECURE</span></code></a> 未设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>。使用仅安全的 CSRF cookie 会使网络流量嗅探者更难窃取 CSRF 令牌。</p></li>\n<li><p><strong>security.W017</strong>：<a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-CSRF_COOKIE_HTTPONLY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CSRF_COOKIE_HTTPONLY</span></code></a> 未设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>。使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpOnly</span></code> CSRF cookie 会使跨站脚本攻击更难窃取 CSRF 令牌。<em>这个检查在 Django 1.11 中被删除了，因为 * :setting:`CSRF_COOKIE_HTTPONLY` * 配置没有实际的好处</em>。</p></li>\n<li><p><strong>security.W018</strong>：在部署时不应将 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a> 设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>。</p></li>\n<li><p><strong>security.W019</strong>：在你的 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-MIDDLEWARE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MIDDLEWARE</span></code></a> 中有 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/middleware/#django.middleware.clickjacking.XFrameOptionsMiddleware\" title=\"django.middleware.clickjacking.XFrameOptionsMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.middleware.clickjacking.XFrameOptionsMiddleware</span></code></a>，但  <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-X_FRAME_OPTIONS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">X_FRAME_OPTIONS</span></code></a> 没有设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">'DENY'</span></code>。除非有很好的理由让你的网站在一个框架中为其他部分服务，否则你应该把它改为 <code class=\"docutils literal notranslate\"><span class=\"pre\">'DENY'</span></code>。</p></li>\n<li><p><strong>security.W020</strong>：<a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-ALLOWED_HOSTS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">ALLOWED_HOSTS</span></code></a> 在部署时不得为空。</p></li>\n<li><p><strong>security.W021</strong>：你没有将 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-SECURE_HSTS_PRELOAD\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_HSTS_PRELOAD</span></code></a> 设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>。否则，你的网站将无法提交到浏览器预加载列表。</p></li>\n<li><p><strong>security.W022</strong>：你没有设置 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-SECURE_REFERRER_POLICY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_REFERRER_POLICY</span></code></a> 配置。如果没有这个配置，你的网站将不会发送 Referrer-Policy 头。你应该考虑启用这个头以保护用户隐私。</p></li>\n<li><p><strong>security.E023</strong>：你的 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-SECURE_REFERRER_POLICY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_REFERRER_POLICY</span></code></a> 配置为无效值。</p></li>\n<li><p><strong>security.E024</strong>: 你已将 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-SECURE_CROSS_ORIGIN_OPENER_POLICY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_CROSS_ORIGIN_OPENER_POLICY</span></code></a> 设置为无效值。</p></li>\n<li><p><strong>security.W025</strong>: 你的 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-SECRET_KEY_FALLBACKS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECRET_KEY_FALLBACKS[n]</span></code></a> 字符串长度小于 50 个字符，包含少于 5 个不同字符，或以 <code class=\"docutils literal notranslate\"><span class=\"pre\">'django-insecure-'</span></code> 为前缀，表明它是由 Django 自动生成的。请生成一个长且随机的值，否则 Django 的许多安全关键功能将容易受到攻击。</p></li>\n</ul>\n<p>以下检查验证你的安全相关配置是否正确设置：</p>\n<ul class=\"simple\">\n<li><p><strong>security.E100</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">DEFAULT_HASHING_ALGORITHM</span></code> 必须是 <code class=\"docutils literal notranslate\"><span class=\"pre\">'sha1'</span></code> 或 <code class=\"docutils literal notranslate\"><span class=\"pre\">'sha256'</span></code>。<em>此检查出现在 Django 3.1 和 3.2 版本中</em>。</p></li>\n<li><p><strong>security.E101</strong> ： CSRF 失败视图 <code class=\"docutils literal notranslate\"><span class=\"pre\">'path.to.view'</span></code> 没有使用正确的参数个数。</p></li>\n<li><p><strong>security.E102</strong> ： 无法导入 CSRF 失败视图  <code class=\"docutils literal notranslate\"><span class=\"pre\">'path.to.view'</span></code>。</p></li>\n</ul>\n</section>\n<section id=\"signals\">\n<h3>信号<a class=\"heading-anchor\" href=\"#signals\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<ul class=\"simple\">\n<li><p><strong>signals.E001</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;handler&gt;</span></code> 与 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;signal&gt;</span></code> 信号连接，并惰性引用发送方 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;app</span> <span class=\"pre\">label&gt;.&lt;model&gt;</span></code>，但应用 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;app</span> <span class=\"pre\">label&gt;</span></code> 没有安装或没有提供模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code>。</p></li>\n</ul>\n</section>\n<section id=\"templates\">\n<h3>模板<a class=\"heading-anchor\" href=\"#templates\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>以下检查验证你的 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-TEMPLATES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TEMPLATES</span></code></a> 配置是否正确设置：</p>\n<ul class=\"simple\">\n<li><p><strong>templates.E001</strong>: 你在 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-TEMPLATES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TEMPLATES</span></code></a> 中设置了 <code class=\"docutils literal notranslate\"><span class=\"pre\">'APP_DIRS':</span> <span class=\"pre\">True</span></code>，但同时在 <code class=\"docutils literal notranslate\"><span class=\"pre\">OPTIONS</span></code> 中指定了 <code class=\"docutils literal notranslate\"><span class=\"pre\">'loaders'</span></code>。请移除 <code class=\"docutils literal notranslate\"><span class=\"pre\">APP_DIRS</span></code> 或移除 <code class=\"docutils literal notranslate\"><span class=\"pre\">'loaders'</span></code> 选项。<em>此检查在 Django 5.1 中被移除，因为系统检查现在可能会抛出</em> <code class=\"docutils literal notranslate\"><span class=\"pre\">ImproperlyConfigured</span></code> <em>异常。</em></p></li>\n<li><p><strong>templates.E002</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">string_if_invalid</span></code> 在 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-TEMPLATES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TEMPLATES</span></code></a> 的 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-TEMPLATES-OPTIONS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">OPTIONS</span></code></a> 必须是一个字符串，但得到：<code class=\"docutils literal notranslate\"><span class=\"pre\">{value}</span></code> （<code class=\"docutils literal notranslate\"><span class=\"pre\">{type}</span></code>）。</p></li>\n<li><p><strong>templates.E003</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;name&gt;</span></code> 用于多个模板标签模块：<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;module</span> <span class=\"pre\">list&gt;</span></code>。<em>此检查在 Django 4.1.2 中更改为</em> <code class=\"docutils literal notranslate\"><span class=\"pre\">templates.W003</span></code>。</p></li>\n<li><p><strong>templates.W003</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;name&gt;</span></code> 用于多个模板标签模块：<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;module</span> <span class=\"pre\">list&gt;</span></code>。</p></li>\n</ul>\n</section>\n<section id=\"translation\">\n<h3>翻译<a class=\"heading-anchor\" href=\"#translation\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>以下是对你的翻译配置进行的检查：</p>\n<ul class=\"simple\">\n<li><p><strong>translation.E001</strong>:：你为 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-LANGUAGE_CODE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LANGUAGE_CODE</span></code></a> 设置提供了一个无效值 setting: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;value&gt;</span></code>。</p></li>\n<li><p><strong>translation.E002</strong>：你在 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-LANGUAGES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LANGUAGES</span></code></a> 配置中提供了无效的语言代码 setting: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;value&gt;</span></code>。</p></li>\n<li><p><strong>translation.E003</strong>：你在 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-LANGUAGES_BIDI\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LANGUAGES_BIDI</span></code></a> 设置中提供了一个无效的语言代码 setting: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;value&gt;</span></code>。</p></li>\n<li><p><strong>translation.E004</strong>：你为 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-LANGUAGE_CODE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LANGUAGE_CODE</span></code></a> 配置提供了一个不在 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-LANGUAGES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LANGUAGES</span></code></a> 配置中的值。</p></li>\n</ul>\n</section>\n<section id=\"urls\">\n<h3>URL<a class=\"heading-anchor\" href=\"#urls\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>以下检查项针对你的 URL 配置执行：</p>\n<ul class=\"simple\">\n<li><p><strong>urls.W001</strong>：你的 URL 模式 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;pattern&gt;</span></code> 使用 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/urls/#django.urls.include\" title=\"django.urls.include\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">include()</span></code></a>，并以 <code class=\"docutils literal notranslate\"><span class=\"pre\">$</span></code> 结尾的 <code class=\"docutils literal notranslate\"><span class=\"pre\">route</span></code>。把 <code class=\"docutils literal notranslate\"><span class=\"pre\">route</span></code> 中的美元符号去掉，以避免包含 URL 的问题。</p></li>\n<li><p><strong>urls.W002</strong>：你的 URL 模式 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;pattern&gt;</span></code> 有一个以 <code class=\"docutils literal notranslate\"><span class=\"pre\">/</span></code> 开头的 <code class=\"docutils literal notranslate\"><span class=\"pre\">route</span></code>。请删除这个斜线，因为它是不必要的。如果这个模式是以 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/urls/#django.urls.include\" title=\"django.urls.include\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">include()</span></code></a> 为目标，请确保 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/urls/#django.urls.include\" title=\"django.urls.include\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">include()</span></code></a> 模式有一个尾部的 <code class=\"docutils literal notranslate\"><span class=\"pre\">/</span></code>。</p></li>\n<li><p><strong>urls.W003</strong>：你的 URL 模式 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;pattern&gt;</span></code> 有一个 <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code>，包括一个 <code class=\"docutils literal notranslate\"><span class=\"pre\">:</span></code>。去掉冒号，以避免模糊的命名空间引用。</p></li>\n<li><p><strong>urls.E004</strong>：你的 URL 模式 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;pattern&gt;</span></code> 无效。确保 <code class=\"docutils literal notranslate\"><span class=\"pre\">urlpatterns</span></code> 是一个 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/urls/#django.urls.path\" title=\"django.urls.path\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">path()</span></code></a> 和／或 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/urls/#django.urls.re_path\" title=\"django.urls.re_path\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">re_path()</span></code></a> 实例的列表。</p></li>\n<li><p><strong>urls.W005</strong>：URL 命名空间 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;namespace&gt;</span></code> 不是唯一的。你可能无法反查此命名空间中的所有 URL。</p></li>\n<li><p><strong>urls.E006</strong>：<a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-MEDIA_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MEDIA_URL</span></code></a> ／<a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-STATIC_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_URL</span></code></a> 的配置必须以斜线结束。</p></li>\n<li><p><strong>urls.E007</strong>：自定义 <code class=\"docutils literal notranslate\"><span class=\"pre\">handlerXXX</span></code> 视图 <code class=\"docutils literal notranslate\"><span class=\"pre\">''path.to.view'</span></code> 没有使用正确的参数数（...）。</p></li>\n<li><p><strong>urls.E008</strong>：无法导入自定义 <code class=\"docutils literal notranslate\"><span class=\"pre\">handlerXXX</span></code> 视图 <code class=\"docutils literal notranslate\"><span class=\"pre\">'path.to.view'</span></code>。</p></li>\n<li><p><strong>urls.E009</strong>: 你的 URL 模式 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;pattern&gt;</span></code> 存在无效的视图，请使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;view&gt;.as_view()</span></code> 而不是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;view&gt;</span></code>。</p></li>\n<li><p><strong>urls.W010</strong>: 你的 URL 模式 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;pattern&gt;</span></code> 中有一个未匹配的 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;angle</span> <span class=\"pre\">bracket&gt;</span></code>。</p></li>\n</ul>\n</section>\n</section>\n<section id=\"contrib-app-checks\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">contrib</span></code> 应用检查<a class=\"heading-anchor\" href=\"#contrib-app-checks\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"admin\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">admin</span></code><a class=\"heading-anchor\" href=\"#admin\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>后台检查项均作为 <code class=\"docutils literal notranslate\"><span class=\"pre\">admin</span></code> 标签的一部分执行。</p>\n<p>以下检查项在每个通过后台站点注册的 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin\" title=\"django.contrib.admin.ModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code></a> （或其子类）上执行。</p>\n<ul class=\"simple\">\n<li><p><strong>admin.E001</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">raw_id_fields</span></code> 的值必须是个列表或元组。</p></li>\n<li><p><strong>admin.E002</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">raw_id_fields[n]</span></code> 的值指向了 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field</span> <span class=\"pre\">name&gt;</span></code>，这不是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 的字段。</p></li>\n<li><p><strong>admin.E003</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">raw_id_fields[n]</span></code> 的值必须是个外键或一个多对多字段。</p></li>\n<li><p><strong>admin.E004</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code> 的值必须是列表或元组。</p></li>\n<li><p><strong>admin.E005</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">fieldsets</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code> 都是定制的。</p></li>\n<li><p><strong>admin.E006</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code> 的值包含了重复字段。</p></li>\n<li><p><strong>admin.E007</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">fieldsets</span></code> 的值必须是个列表或元组。</p></li>\n<li><p><strong>admin.E008</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">fieldsets[n]</span></code> 的值必须是个列表或元组。</p></li>\n<li><p><strong>admin.E009</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">fieldsets[n]</span></code> 的值的长度必须是 2。</p></li>\n<li><p><strong>admin.E010</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">fieldsets[n][1]</span></code> 的值必须是个字典。</p></li>\n<li><p><strong>admin.E011</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">fieldsets[n][1]</span></code> 的值必须包含键 <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code>。</p></li>\n<li><p><strong>admin.E012</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">fieldsets[n][1]</span></code> 中有重复字段。</p></li>\n<li><p><strong>admin.E013</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">fields[n]/filter_horizontal[n]/filter_vertical[n]/fieldsets[n][m]</span></code> 的值不能包括 <code class=\"docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code> <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field</span> <span class=\"pre\">name&gt;</span></code>，因为该字段手动指定了关系模型。</p></li>\n<li><p><strong>admin.E014</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">exclude</span></code> 的值必须是个列表或元组。</p></li>\n<li><p><strong>admin.E015</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">exclude</span></code> 的值必须包含重复字段。</p></li>\n<li><p><strong>admin.E016</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">form</span></code> 的值必须继承自 <code class=\"docutils literal notranslate\"><span class=\"pre\">BaseModelForm</span></code>。</p></li>\n<li><p><strong>admin.E017</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">filter_vertical</span></code> 的值必须是个列表或元组。</p></li>\n<li><p><strong>admin.E018</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">filter_horizontal</span></code> 的值必须是个列表或元组。</p></li>\n<li><p><strong>admin.E019</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">filter_vertical[n]/filter_horizontal[n]</span></code> 的值指向了 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field</span> <span class=\"pre\">name&gt;</span></code>，这不是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 的字段。</p></li>\n<li><p><strong>admin.E020</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">filter_vertical[n]/filter_horizontal[n]</span></code> 的值必须是多对多字段。</p></li>\n<li><p><strong>admin.E021</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">radio_fields</span></code> 的值必须是一个字典。</p></li>\n<li><p><strong>admin.E022</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">radio_fields</span></code> 的值指向了 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field</span> <span class=\"pre\">name&gt;</span></code>，这不是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 的字段。</p></li>\n<li><p><strong>admin.E023</strong> : <code class=\"docutils literal notranslate\"><span class=\"pre\">radio_fields</span></code> 的值指的是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field</span> <span class=\"pre\">name&gt;</span></code>，它不是 <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code> 的实例，也没有 <code class=\"docutils literal notranslate\"><span class=\"pre\">choices</span></code> 的定义。</p></li>\n<li><p><strong>admin.E024</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">radio_fields[&lt;field</span> <span class=\"pre\">name&gt;]</span></code> 的值必须是 <code class=\"docutils literal notranslate\"><span class=\"pre\">admin.HORIZONTAL</span></code> 或 <code class=\"docutils literal notranslate\"><span class=\"pre\">admin.VERTICAL</span></code>。</p></li>\n<li><p><strong>admin.E025</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">view_on_site</span></code> 的值必须是可调用值或布尔值。</p></li>\n<li><p><strong>admin.E026</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">prepopulated_fields</span></code> 的值必须是一个字典。</p></li>\n<li><p><strong>admin.E027</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">prepopulated_fields</span></code> 的值指向了 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field</span> <span class=\"pre\">name&gt;</span></code>，这不是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 的字段。</p></li>\n<li><p><strong>admin.E028</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">prepopulated_fields</span></code> 的值指的是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field</span> <span class=\"pre\">name&gt;</span></code>，它不得是 <code class=\"docutils literal notranslate\"><span class=\"pre\">DateTimeField</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">OneToOneField</span></code> 或 <code class=\"docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code> 字段。</p></li>\n<li><p><strong>admin.E029</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">prepopulated_fields[&lt;field</span> <span class=\"pre\">name&gt;]</span></code> 的值必须是一个列表或元组。</p></li>\n<li><p><strong>admin.E030</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">prepopulated_fields</span></code> 的值指向了 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field</span> <span class=\"pre\">name&gt;</span></code>，这不是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 的字段。</p></li>\n<li><p><strong>admin.E031</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">ordering</span></code> 的值必须是一个列表或元组。</p></li>\n<li><p><strong>admin.E032</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">ordering</span></code> 的值有随机排序标记 <code class=\"docutils literal notranslate\"><span class=\"pre\">?</span></code>，但也有其他字段。</p></li>\n<li><p><strong>admin.E033</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">ordering</span></code> 的值指向了 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field</span> <span class=\"pre\">name&gt;</span></code>，这不是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 的字段。</p></li>\n<li><p><strong>admin.E034</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">readonly_fields</span></code> 的值必须是一个列表或元组。</p></li>\n<li><p><strong>admin.E035</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">readonly_fields[n]</span></code> 的值引用了 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field_name&gt;</span></code>，它既不是可调用的，也不是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;ModelAdmin</span> <span class=\"pre\">class&gt;</span></code> 的属性，也不是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 的属性。</p></li>\n<li><p><strong>admin.E036</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">autocomplete_fields</span></code> 的值必须是一个列表或元组。</p></li>\n<li><p><strong>admin.E037</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">autocomplete_fields[n]</span></code> 的值指向了 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field</span> <span class=\"pre\">name&gt;</span></code>，这不是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 的字段。</p></li>\n<li><p><strong>admin.E038</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">autocomplete_fields[n]</span></code> 的值必须是外键或多对多字段。</p></li>\n<li><p><strong>admin.E039</strong>：模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 的管理必须注册，才能由 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;modeladmin&gt;.autocomplete_fields</span></code> 引用。</p></li>\n<li><p><strong>admin.E040</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;modeladmin&gt;</span></code> 必须定义 <code class=\"docutils literal notranslate\"><span class=\"pre\">search_fields</span></code>，因为 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;other_modeladmin&gt;.autocomplete_fields</span></code> 引用了它。</p></li>\n</ul>\n<section id=\"modeladmin\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code><a class=\"heading-anchor\" href=\"#modeladmin\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>对管理站点注册的任何 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin\" title=\"django.contrib.admin.ModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code></a> 进行以下检查：</p>\n<ul class=\"simple\">\n<li><p><strong>admin.E101</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">save_as</span></code> 的值必须是个布尔值。</p></li>\n<li><p><strong>admin.E102</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">save_on_top</span></code> 的值必须是个布尔值。</p></li>\n<li><p><strong>admin.E103</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">inlines</span></code> 的值必须是个列表或元组。</p></li>\n<li><p><strong>admin.E104</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;InlineModelAdmin</span> <span class=\"pre\">class&gt;</span></code> 必须继承自 <code class=\"docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code>。</p></li>\n<li><p><strong>admin.E105</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;InlineModelAdmin</span> <span class=\"pre\">class&gt;</span></code> 必须有个 <code class=\"docutils literal notranslate\"><span class=\"pre\">model</span></code> 属性。</p></li>\n<li><p><strong>admin.E106</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;InlineModelAdmin</span> <span class=\"pre\">class&gt;.model</span></code> 的值必须是个 <code class=\"docutils literal notranslate\"><span class=\"pre\">Model</span></code>。</p></li>\n<li><p><strong>admin.E107</strong>： <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code> 的值必须是个列表或元组。</p></li>\n<li><p><strong>admin.E108</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display[n]</span></code> 的值引用了 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code>，但它不是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;ModelAdmin</span> <span class=\"pre\">class&gt;</span></code> 的可调用对象或属性，也不是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 的属性、方法或字段。</p></li>\n<li><p><strong>admin.E109</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display[n]</span></code> 的值不能是多对多字段或反向外键。</p></li>\n<li><p><strong>admin.E110</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">list_display_links</span></code> 的值必须是一个列表、一个元组或 <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>。</p></li>\n<li><p><strong>admin.E111</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">list_display_links[n]</span></code> 的值指的是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code>，而 <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code> 中没有定义。</p></li>\n<li><p><strong>admin.E112</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">list_filter</span></code> 的值必须是一个列表或元组。</p></li>\n<li><p><strong>admin.E113</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">list_filter[n]</span></code> 的值必须继承自 <code class=\"docutils literal notranslate\"><span class=\"pre\">ListFilter</span></code>。</p></li>\n<li><p><strong>admin.E114</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">list_filter[n]</span></code> 的值不得继承于 <code class=\"docutils literal notranslate\"><span class=\"pre\">FieldListFilter</span></code>。</p></li>\n<li><p><strong>admin.E115</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">list_filter[n][1]</span></code> 的值必须继承自 <code class=\"docutils literal notranslate\"><span class=\"pre\">FieldListFilter</span></code>。</p></li>\n<li><p><strong>admin.E116</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">list_filter[n]</span></code> 的值指的是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code>，而该值并不指一个字段。</p></li>\n<li><p><strong>admin.E117</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">list_select_related</span></code> 的值必须是布尔值、元组或列表。</p></li>\n<li><p><strong>admin.E118</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">list_per_page</span></code> 的值必须是一个整数。</p></li>\n<li><p><strong>admin.E119</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">list_max_show_all</span></code> 的值必须是一个整数。</p></li>\n<li><p><strong>admin.E120</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">list_editable</span></code> 的值必须是一个列表或元组。</p></li>\n<li><p><strong>admin.E121</strong> ： <code class=\"docutils literal notranslate\"><span class=\"pre\">list_editable[n]</span></code> 的值指向是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code>，它不是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 的一个字段。</p></li>\n<li><p><strong>admin.E122</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">list_editable[n]</span></code> 的值指的是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code>，而 <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code> 中并不包含该值。</p></li>\n<li><p><strong>admin.E123</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">list_editable[n]</span></code> 的值不能同时出现在 <code class=\"docutils literal notranslate\"><span class=\"pre\">list_editable</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display_links</span></code> 中。</p></li>\n<li><p><strong>admin.E124</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">list_editable[n]</span></code> 的值是指 <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code> （<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code>）中的第一个字段，除非设置 <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display_links</span></code>，否则不能使用。</p></li>\n<li><p><strong>admin.E125</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">list_editable[n]</span></code> 的值指的是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field</span> <span class=\"pre\">name&gt;</span></code>，不能通过管理编辑。</p></li>\n<li><p><strong>admin.E126</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">search_fields</span></code> 的值必须是一个列表或元组。</p></li>\n<li><p><strong>admin.E127</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">date_hierarchy</span></code> 的值指的是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field</span> <span class=\"pre\">name&gt;</span></code>，而该值并不指的是一个字段。</p></li>\n<li><p><strong>admin.E128</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">date_hierarchy</span></code> 的值必须是 <code class=\"docutils literal notranslate\"><span class=\"pre\">DateField</span></code> 或 <code class=\"docutils literal notranslate\"><span class=\"pre\">DateTimeField</span></code>。</p></li>\n<li><p><strong>admin.E129</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;modeladmin&gt;</span></code> 必须为 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;action&gt;</span></code> 动作定义一个 <code class=\"docutils literal notranslate\"><span class=\"pre\">has_&lt;foo&gt;_permission()</span></code> 方法。</p></li>\n<li><p><strong>admin.E130</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;modeladmin&gt;</span></code> 中定义的行动的 <code class=\"docutils literal notranslate\"><span class=\"pre\">__name__</span></code> 属性必须是唯一的。<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;name&gt;</span></code> 这个名称不是唯一的。</p></li>\n</ul>\n</section>\n<section id=\"inlinemodeladmin\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code><a class=\"heading-anchor\" href=\"#inlinemodeladmin\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>对任何 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/contrib/admin/#django.contrib.admin.InlineModelAdmin\" title=\"django.contrib.admin.InlineModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code></a> 上注册为内联的 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin\" title=\"django.contrib.admin.ModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code></a> 进行以下检查。</p>\n<ul class=\"simple\">\n<li><p><strong>admin.E201</strong>：不能排除字段 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field</span> <span class=\"pre\">name&gt;</span></code>，因为它是父模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;app_label&gt;.&lt;model&gt;</span></code> 的外键。</p></li>\n<li><p><strong>admin.E202</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 没有 <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code> 到 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;parent</span> <span class=\"pre\">model&gt;</span></code>./ <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 有一个以上 <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code> 到 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;parent</span> <span class=\"pre\">model&gt;</span></code>。你必须指定一个 <code class=\"docutils literal notranslate\"><span class=\"pre\">fk_name</span></code> 属性。</p></li>\n<li><p><strong>admin.E203</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">extra</span></code> 的值必须是一个整数。</p></li>\n<li><p><strong>admin.E204</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">max_num</span></code> 的值必须是一个整数。</p></li>\n<li><p><strong>admin.E205</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">min_num</span></code> 的值必须是一个整数。</p></li>\n<li><p><strong>admin.E206</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">formset</span></code> 的值必须继承自 <code class=\"docutils literal notranslate\"><span class=\"pre\">BaseModelFormSet</span></code>。</p></li>\n</ul>\n</section>\n<section id=\"genericinlinemodeladmin\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">GenericInlineModelAdmin</span></code><a class=\"heading-anchor\" href=\"#genericinlinemodeladmin\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>以下检查将在任何 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/contrib/contenttypes/#django.contrib.contenttypes.admin.GenericInlineModelAdmin\" title=\"django.contrib.contenttypes.admin.GenericInlineModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">GenericInlineModelAdmin</span></code></a> 上作为内联注册的 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin\" title=\"django.contrib.admin.ModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code></a> 上执行。</p>\n<ul class=\"simple\">\n<li><p><strong>admin.E301</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> has no <code class=\"docutils literal notranslate\"><span class=\"pre\">GenericForeignKey</span></code>.</p></li>\n<li><p><strong>admin.E302</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'ct_field'</span></code> references <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code>, which is not a field\non <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code>.</p></li>\n<li><p><strong>admin.E303</strong>: <code class=\"docutils literal notranslate\"><span class=\"pre\">'ct_fk_field'</span></code> references <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code>, which is not a\nfield on <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code>.</p></li>\n<li><p><strong>admin.E304</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 没有 <code class=\"docutils literal notranslate\"><span class=\"pre\">GenericForeignKey</span></code>，使用内容类型字段 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field</span> <span class=\"pre\">name&gt;</span></code> 和对象 ID 字段 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field</span> <span class=\"pre\">name&gt;</span></code>。</p></li>\n</ul>\n</section>\n<section id=\"adminsite\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code><a class=\"heading-anchor\" href=\"#adminsite\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>对默认的 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/contrib/admin/#django.contrib.admin.AdminSite\" title=\"django.contrib.admin.AdminSite\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code></a> 进行以下检查：</p>\n<ul class=\"simple\">\n<li><p><strong>admin.E401</strong>： <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/contrib/contenttypes/#module-django.contrib.contenttypes\" title=\"django.contrib.contenttypes: Provides generic interface to installed models.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.contenttypes</span></code></a> 必须在 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a> 中才能使用管理应用程序。</p></li>\n<li><p><strong>admin.E402</strong>：如果使用默认的认证后端，必须在 <a class=\"reference internal\" href=\"/zh-hans/5.2/topics/templates/#django.template.backends.django.DjangoTemplates\" title=\"django.template.backends.django.DjangoTemplates\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DjangoTemplates</span></code></a> （<a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-TEMPLATES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TEMPLATES</span></code></a>）中启用 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/templates/api/#django.contrib.auth.context_processors.auth\" title=\"django.contrib.auth.context_processors.auth\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.context_processors.auth</span></code></a>，才能使用管理程序。</p></li>\n<li><p><strong>admin.E403</strong>：必须在 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-TEMPLATES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TEMPLATES</span></code></a> 中配置一个 <a class=\"reference internal\" href=\"/zh-hans/5.2/topics/templates/#django.template.backends.django.DjangoTemplates\" title=\"django.template.backends.django.DjangoTemplates\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.template.backends.django.DjangoTemplates</span></code></a> 实例，才能使用管理程序。</p></li>\n<li><p><strong>admin.E404</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.message.context_processors.message</span></code> 必须在 <a class=\"reference internal\" href=\"/zh-hans/5.2/topics/templates/#django.template.backends.django.DjangoTemplates\" title=\"django.template.backends.django.DjangoTemplates\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DjangoTemplates</span></code></a> （<a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-TEMPLATES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TEMPLATES</span></code></a>）中启用，才能使用管理程序。</p></li>\n<li><p><strong>admin.E405</strong>： <a class=\"reference internal\" href=\"/zh-hans/5.2/topics/auth/#module-django.contrib.auth\" title=\"django.contrib.auth: Django's authentication framework.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.auth</span></code></a> 必须在 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a> 中才能使用管理程序。</p></li>\n<li><p><strong>admin.E406</strong>： <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/contrib/messages/#module-django.contrib.messages\" title=\"django.contrib.messages: Provides cookie- and session-based temporary message storage.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.messages</span></code></a> 必须在 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a> 中才能使用管理程序。</p></li>\n<li><p><strong>admin.E408</strong>： <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/middleware/#django.contrib.auth.middleware.AuthenticationMiddleware\" title=\"django.contrib.auth.middleware.AuthenticationMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.middleware.AuthenticationMiddleware</span></code></a> 必须在 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-MIDDLEWARE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MIDDLEWARE</span></code></a> 中才能使用管理应用程序。</p></li>\n<li><p><strong>admin.E409</strong>： <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/middleware/#django.contrib.messages.middleware.MessageMiddleware\" title=\"django.contrib.messages.middleware.MessageMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.contrib.messages.middleware.MessageMiddleware</span></code></a> 必须在 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-MIDDLEWARE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MIDDLEWARE</span></code></a> 中才能使用管理应用程序。</p></li>\n<li><p><strong>admin.E410</strong>： <code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.contrib.session.middleware.SessionMiddleware</span></code> 必须在 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-MIDDLEWARE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MIDDLEWARE</span></code></a> 中才能使用管理应用程序。</p></li>\n<li><p><strong>admin.W411</strong>：必须在 <a class=\"reference internal\" href=\"/zh-hans/5.2/topics/templates/#django.template.backends.django.DjangoTemplates\" title=\"django.template.backends.django.DjangoTemplates\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DjangoTemplates</span></code></a> （<a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-TEMPLATES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TEMPLATES</span></code></a>）中启用 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.context_processors.request</span></code> 才能使用管理员导航侧栏。</p></li>\n</ul>\n</section>\n</section>\n<section id=\"auth\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">auth</span></code><a class=\"heading-anchor\" href=\"#auth\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<ul class=\"simple\">\n<li><p><strong>auth.E001</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">REQUIRED_FIELDS</span></code> 必须是一个列表或元组。</p></li>\n<li><p><strong>auth.E002</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">REQUIRED_FIELDS</span></code> 中不得包括名为 <code class=\"docutils literal notranslate\"><span class=\"pre\">USERNAME_FIELD</span></code> 的自定义用户模型字段。</p></li>\n<li><p><strong>auth.E003</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field&gt;</span></code> 必须是唯一的，因为它被命名为 <code class=\"docutils literal notranslate\"><span class=\"pre\">USERNAME_FIELD</span></code>。</p></li>\n<li><p><strong>auth.W004</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field&gt;</span></code> 被命名为 <code class=\"docutils literal notranslate\"><span class=\"pre\">USERNAME_FIELD</span></code>，但它不是唯一的。</p></li>\n<li><p><strong>auth.E005</strong>：代号为 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;codename&gt;</span></code> 的权限与模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 的内置权限发生冲突。</p></li>\n<li><p><strong>auth.E006</strong>：代号为 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;codename&gt;</span></code> 的权限与模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 重复。</p></li>\n<li><p><strong>auth.E007</strong>：模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 的 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/models/options/#django.db.models.Options.verbose_name\" title=\"django.db.models.Options.verbose_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">verbose_name</span></code></a> 必须最多 244 个字符，其内置的权限名最多只能是 255 个字符。</p></li>\n<li><p><strong>auth.E008</strong>：模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 的权限名 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;name&gt;</span></code> 超过 255 个字符。</p></li>\n<li><p><strong>auth.C009</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;User</span> <span class=\"pre\">model&gt;.is_anonymous</span></code> 必须是一个属性或属性，而不是方法。忽略这一点是一个安全问题，因为匿名用户将被视为经过认证的用户。</p></li>\n<li><p><strong>auth.C010</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;User</span> <span class=\"pre\">model&gt;.is_authenticated</span></code> 必须是一个属性或属性，而不是方法。忽略这一点是一个安全问题，因为匿名用户将被视为经过认证的用户。</p></li>\n<li><p><strong>auth.E011</strong>： 模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 的名称最多只能是 93 个字符，其内置的权限名称最多只能是 100 个字符。</p></li>\n<li><p><strong>auth.E012</strong>：代号为 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;codename&gt;</span></code> 的模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;model&gt;</span></code> 的权限超过100个字符。</p></li>\n<li><p><strong>auth.E013</strong>: 为了使用 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/middleware/#django.contrib.auth.middleware.LoginRequiredMiddleware\" title=\"django.contrib.auth.middleware.LoginRequiredMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.middleware.LoginRequiredMiddleware</span></code></a>，必须在 MIDDLEWARE 中先定义 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/middleware/#django.contrib.auth.middleware.AuthenticationMiddleware\" title=\"django.contrib.auth.middleware.AuthenticationMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.middleware.AuthenticationMiddleware</span></code></a>。</p></li>\n</ul>\n</section>\n<section id=\"contenttypes\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">contenttypes</span></code><a class=\"heading-anchor\" href=\"#contenttypes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>当一个模型包含 <code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">GenericForeignKey</span></code> 或 <code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">GenericRelation</span></code> 时，会进行以下检查：</p>\n<ul class=\"simple\">\n<li><p><strong>contenttypes.E001</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">GenericForeignKey</span></code> 对象 ID 引用不存在的字段 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field&gt;</span></code>。</p></li>\n<li><p><strong>contenttypes.E002</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">GenericForeignKey</span></code> 内容类型引用不存在的字段 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field&gt;</span></code>。</p></li>\n<li><p><strong>contenttypes.E003</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field&gt;</span></code> 不是一个 <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code>。</p></li>\n<li><p><strong>contenttypes.E004</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field&gt;</span></code> 不是一个指向 <code class=\"docutils literal notranslate\"><span class=\"pre\">contenttypes.ContentType</span></code> 的  <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code> 。</p></li>\n<li><p><strong>contenttypes.E005</strong>：模型名称最多只能是 100 个字符。</p></li>\n</ul>\n</section>\n<section id=\"postgres\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">postgres</span></code><a class=\"heading-anchor\" href=\"#postgres\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>对 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/contrib/postgres/#module-django.contrib.postgres\" title=\"django.contrib.postgres: PostgreSQL-specific fields and features\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres</span></code></a> 模型字段进行以下检查：</p>\n<ul class=\"simple\">\n<li><p><strong>postgres.E001</strong>：数组的基础字段有错误：...</p></li>\n<li><p><strong>postgres.E002</strong>：数组的基础字段不能是有关系的字段。</p></li>\n<li><p><strong>postgres.E003</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field&gt;</span></code> 缺省值应该是一个可调用对象，而不是一个实例，这样它就不会被所有字段实例共享。<em>这个检查在 Django 3.1 中被改为 *``fields.E010``</em> <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">*</span></a>。</p></li>\n<li><p><strong>postgres.W004</strong>: 数组的基本字段存在警告：...</p></li>\n</ul>\n</section>\n<section id=\"sites\">\n<span id=\"sites-system-checks\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">sites</span></code><a class=\"heading-anchor\" href=\"#sites\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>对任何使用 <code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">CurrentSiteManager</span></code> 的模型进行以下检查：</p>\n<ul class=\"simple\">\n<li><p><strong>sites.E001</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">CurrentSiteManager</span></code> 找不到名为 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field</span> <span class=\"pre\">name&gt;</span></code> 的字段。</p></li>\n<li><p><strong>sites.E002</strong>：<code class=\"docutils literal notranslate\"><span class=\"pre\">CurrentSiteManager</span></code> 不能使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;field&gt;</span></code>，因为它不是外键或多对多字段。</p></li>\n</ul>\n<p>以下检查验证 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/contrib/sites/#module-django.contrib.sites\" title=\"django.contrib.sites: Lets you operate multiple websites from the same database and Django project\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.sites</span></code></a> 是否正确配置：</p>\n<ul class=\"simple\">\n<li><p><strong>sites.E101</strong> ： <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-SITE_ID\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SITE_ID</span></code></a> 的配置必须是一个整数。</p></li>\n</ul>\n</section>\n<section id=\"staticfiles\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">staticfiles</span></code><a class=\"heading-anchor\" href=\"#staticfiles\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>以下检查验证 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/contrib/staticfiles/#module-django.contrib.staticfiles\" title=\"django.contrib.staticfiles: An app for handling static files.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.staticfiles</span></code></a> 是否正确配置：</p>\n<ul class=\"simple\">\n<li><p><strong>staticfiles.E001</strong>： <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-STATICFILES_DIRS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATICFILES_DIRS</span></code></a> 配置不是元组或列表。</p></li>\n<li><p><strong>staticfiles.E002</strong>： <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-STATICFILES_DIRS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATICFILES_DIRS</span></code></a> 配置不应包含 <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-STATIC_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_ROOT</span></code></a> 配置。</p></li>\n<li><p><strong>staticfiles.E003</strong>：<a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-STATICFILES_DIRS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATICFILES_DIRS</span></code></a> 设置中的前缀 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;prefix&gt;</span></code>，不得以斜线结束。</p></li>\n<li><p><strong>staticfiles.W004</strong>： <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-STATICFILES_DIRS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATICFILES_DIRS</span></code></a> 中的目录 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;directory&gt;</span></code> 不存在。</p></li>\n<li><p><strong>staticfiles.E005</strong>: <a class=\"reference internal\" href=\"/zh-hans/5.2/ref/settings/#std-setting-STORAGES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STORAGES</span></code></a> 设置必须定义一个 <code class=\"docutils literal notranslate\"><span class=\"pre\">staticfiles</span></code> 存储。</p></li>\n</ul>\n</section>\n</section>","rootId":"system-check-framework","toc":[{"title":"API 参考","anchor":"api-reference","children":[{"title":"CheckMessage","anchor":"checkmessage","children":[]}]},{"title":"内置标签","anchor":"builtin-tags","children":[]},{"title":"核心系统检查","anchor":"core-system-checks","children":[{"title":"异步支持","anchor":"asynchronous-support","children":[]},{"title":"向后兼容","anchor":"backwards-compatibility","children":[]},{"title":"缓存","anchor":"caches","children":[]},{"title":"数据库","anchor":"database","children":[{"title":"MySQL 和 MariaDB","anchor":"mysql-and-mariadb","children":[]}]},{"title":"管理文件","anchor":"managing-files","children":[]},{"title":"模型字段","anchor":"model-fields","children":[{"title":"文件字段","anchor":"file-fields","children":[]},{"title":"关联字段","anchor":"related-fields","children":[]}]},{"title":"模型","anchor":"models","children":[]},{"title":"管理命令","anchor":"management-commands","children":[]},{"title":"安全","anchor":"security","children":[]},{"title":"信号","anchor":"signals","children":[]},{"title":"模板","anchor":"templates","children":[]},{"title":"翻译","anchor":"translation","children":[]},{"title":"URL","anchor":"urls","children":[]}]},{"title":"contrib 应用检查","anchor":"contrib-app-checks","children":[{"title":"admin","anchor":"admin","children":[{"title":"ModelAdmin","anchor":"modeladmin","children":[]},{"title":"InlineModelAdmin","anchor":"inlinemodeladmin","children":[]},{"title":"GenericInlineModelAdmin","anchor":"genericinlinemodeladmin","children":[]},{"title":"AdminSite","anchor":"adminsite","children":[]}]},{"title":"auth","anchor":"auth","children":[]},{"title":"contenttypes","anchor":"contenttypes","children":[]},{"title":"postgres","anchor":"postgres","children":[]},{"title":"sites","anchor":"sites","children":[]},{"title":"staticfiles","anchor":"staticfiles","children":[]}]}],"breadcrumbs":[{"docname":"ref/index","title":"API 参考","url":"/zh-hans/5.2/ref/"}],"prev":{"docname":"ref/applications","title":"应用程序","url":"/zh-hans/5.2/ref/applications/"},"next":{"docname":"ref/class-based-views/index","title":"内置基于类的视图 API","url":"/zh-hans/5.2/ref/class-based-views/"},"formats":{"html":"/zh-hans/5.2/ref/checks/","markdown":"/zh-hans/5.2/ref/checks.md","json":"/zh-hans/5.2/ref/checks.json"},"source":"https://github.com/django/django/blob/stable/5.2.x/docs/ref/checks.txt","official":"https://docs.djangoproject.com/zh-hans/5.2/ref/checks/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}