Инфраструктура управления системой ¶
Платформа управления системой - это набор статических элементов управления для проверки проектов Django. Он обнаруживает распространенные проблемы и дает советы по их устранению. Инфраструктура расширяема, так что вы можете легко добавлять свои собственные элементы управления.
Для получения подробной информации о том, как добавлять собственные проверки и интегрировать их с системными проверками Django, см. Руководство по проверке системы .
Справочник по API ¶
CheckMessage
¶
-
class
CheckMessage
( level , msg , hint = None , obj = None , id = None ) ¶
Предупреждения и ошибки, о которых сообщает система проверки, должны быть экземплярами CheckMessage
. Экземпляр инкапсулирует одну ошибку, которую необходимо сообщить, или одно предупреждение. Он также предоставляет индикаторы и контекст, применимые к сообщению, и уникальный идентификатор, который используется для целей фильтрации.
Аргументы конструктора:
level
- Серьезность сообщения. Используйте один из предопределенных значений:
DEBUG
,INFO
,WARNING
,ERROR
,CRITICAL
. Если уровень больше или равенERROR
, Django предотвратит выполнение команд управления. Сообщения с уровнем нижеERROR
(т.е. предупреждения) отображаются в консоли, но их можно отключить. msg
- Короткая строка (менее 80 символов) с описанием проблемы. Строка не должна содержать разрывов строки.
hint
- Однострочная строка, указывающая на решение проблемы. Если флаг не может быть предоставлен или если это очевидно из сообщения об ошибке, флаг можно опустить или использовать значение
None
. obj
- По желанию. Объект, предоставляющий контекст сообщения (например, модель, в которой была обнаружена проблема). Объект должен быть моделью, полем, обработчиком или любым другим объектом, определяющим метод
__str__()
. Метод используется при сборе всех сообщений, и его результат предшествует сообщению. id
- Необязательная строка. Уникальный идентификатор проблемы. Идентификаторы должны следовать шаблону
applabel.X001
, гдеX
одна из буквCEWID
обозначает серьезность сообщения (C
для критического,E
для ошибок и так далее). Номер может быть назначен приложением, но должен быть уникальным в рамках этого приложения.
Есть подклассы для облегчения создания сообщений с базовыми уровнями. При их использовании вы можете опустить параметр, level
потому что он подразумевается именем класса.
-
class
Debug
( msg , hint = None , obj = None , id = None ) ¶
-
class
Info
( msg , hint = None , obj = None , id = None ) ¶
-
class
Warning
( msg , hint = None obj = None , id = None ) ¶
-
class
Error
( msg , hint = None , obj = None , id = None ) ¶
-
class
Critical
( msg , hint = None , obj = None , id = None ) ¶
Предопределенные метки ¶
Системные элементы управления Django организованы с использованием следующих меток:
admin
: проверка всех объявлений администрации сайтов.async_support
: Асинхронные проверки конфигурации.caches
: контролирует конфигурацию, относящуюся к кешам (буферная память).compatibility
: выявление потенциальных проблем с обновлениями.database
: Проверяет проблемы конфигурации, связанные с базой данных. Проверки базы данных не запускаются по умолчанию, потому что они делают больше, чем статический анализ кода, как обычные проверки. Они запускаются толькоmigrate
командой или если вы указываете настроенные псевдонимы базы данных с помощью--database
параметра при вызовеcheck
команды.models
: элементы управления, управляющие определениями моделей, полей и менеджеров.security
: управляет конфигурацией, связанной с безопасностью.signals
: элементы управления объявлениями сигналов и записями менеджера.staticfiles
: управляет конфигурацией, связанной сdjango.contrib.staticfiles
.templates
: управляет конфигурацией, связанной с шаблонами.translation
: проверьте конфигурацию, связанную с переводами.urls
: контролирует конфигурацию URL-адресов.
Некоторые элементы управления можно сохранить под несколькими тегами.
async_support
Тэг был добавлен.
Теперь database
проверки выполняются только для псевдонимов базы данных, указанных с помощью параметра.check --database
Проверка системы ядра ¶
Асинхронная поддержка ¶
Следующие проверки подтверждают вашу настройку для управления асинхронным кодом :
- async.E001 : не следует устанавливать
DJANGO_ALLOW_ASYNC_UNSAFE
переменная среды в развертывании. Это отключает защиту асинхронной безопасности .
Обратная совместимость ¶
Проверки совместимости предупреждают вас о потенциальных проблемах, которые могут возникнуть после обновления Django.
- 2_0.W001 : шаблон URL
<pattern>
имеет содержащий маршрут(?P<
, начинающийся с^
или заканчивающийся на$
. Вероятно, это был недосмотр при переключении сurl()
наpath()
.
Кеши ¶
Следующие проверки подтверждают CACHES
правильность настройки параметра:
- caches.E001 : Вы должны определить кеш
'default'
в своих настройкахCACHES
.
База данных ¶
MySQL и MariaDB ¶
Если вы используете MySQL или MariaDB, будут выполнены следующие проверки:
- mysql.E001 : MySQL / MariaDB не позволяет уникальным
CharField
s иметьmax_length
> 255. Эта проверка была изменена наmysql.W003
в Django 3.1, так как реальный максимальный размер зависит от многих факторов. - mysql.W002 : Строгий режим MySQL / MariaDB не установлен для подключения к базе данных
<alias>
. См. Также Определение sql_mode . - mysql.W003 : MySQL / MariaDB может не разрешать уникальным
CharField
s иметьmax_length
> 255.
Поля шаблона ¶
- fields.E001 : Имена полей не должны заканчиваться знаком подчеркивания.
- fields.E002 : Имена полей не должны содержать
"__"
. - fields.E003 * :
pk
зарезервированное слово и не может использоваться в качестве имени поля. - fields.E004 :
choices
должен быть повторяющимся элементом (например, списком или кортежем). - fields.E005 :
choices
должен быть повторяющимся элементом, возвращающим кортежи .(valeur réelle, nom convivial)
- fields.E006 :
db_index
может содержать толькоNone
,True
илиFalse
. - fields.E007 : Первичные ключи не могут содержать
null=True
. - fields.E008 : все
validators
должны быть исполняемыми. - fields.E009 :
max_length
слишком короткое, чтобы вместить самое длинное значениеchoices
(<count>
символов). - fields.E010 :
<field>
default должен быть вызываемым, а не экземпляром, чтобы он не разделялся между всеми экземплярами поля. - fields.E100 : поля
AutoField
должны декларироватьсяprimary_key=True
. - fields.E110 : поля
BooleanField
не принимают нулевые значения. Этот элемент управления появился до того, как в Django 2.1 была добавлена поддержка нулевых значений. - fields.E120 : поля
CharField
должны определять атрибутmax_length
. - fields.E121 :
max_length
должно быть положительным целым числом. - fields.W122 :
max_length
игнорируется при использовании для поля .<type de champ entier>
- fields.E130 : поля
DecimalField
должны определять атрибутdecimal_places
. - fields.E131 :
decimal_places
должно быть целым неотрицательным числом. - fields.E132 : поля
DecimalField
должны определять атрибутmax_digits
. - fields.E133 :
max_digits
должно быть целым неотрицательным числом. - fields.E134 :
max_digits
должно быть больше или равноdecimal_places
. - fields.E140 : Поля
FilePathField
должны иметь один из двух атрибутовallow_files
и иметьallow_folders
значениеTrue
. - fields.E150 : Поля
GenericIPAddressField
не могут принимать пустые значения, если значения NULL недопустимы, поскольку пустые значения сохраняются как значения NULL. - fields.E160 : варианты
auto_now
,auto_now_add
иdefault
взаимно исключают друг друга. Следует сохранить только один из этих вариантов. - fields.W161 : указано фиксированное значение по умолчанию.
- fields.W162 :
<base_de_données>
не поддерживает индексы по столбцам .<type données champ>
- fields.E170 : По умолчанию
BinaryField
не может быть строкой. Вместо этого используйте двоичный контент. - fields.E180 :
<database>
не поддерживаетJSONField
s. - fields.E900 : Удалено,
IPAddressField
за исключением поддержки исторических миграций. - fields.W900 :
IPAddressField
устарело. Его поддержка (за исключением исторических миграций) будет удалена в Django 1.9. Этот элемент управления появился в Django 1.7 и 1.8 . - fields.W901 :
CommaSeparatedIntegerField
устарело. Его поддержка (за исключением исторических миграций) будет удалена в Django 2.0. Этот элемент управления появляется в Django 1.10 и 1.11 . - fields.E901 : Удалено
CommaSeparatedIntegerField
, за исключением поддержки исторических миграций. - fields.W902 :
FloatRangeField
устарело и будет удалено в Django 3.1. Эта проверка появилась в Django 2.2 и 3.0 . - fields.W903 :
NullBooleanField
устарело. Его поддержка (за исключением исторических миграций) будет удалена в Django 4.0. - fields.W904 :
django.contrib.postgres.fields.JSONField
устарело. Его поддержка (за исключением исторических миграций) будет удалена в Django 4.0.
Поля типа файла ¶
- fields.E200 :
unique
не является допустимым параметром для поляFileField
. Этот элемент управления удален в Django 1.11 . - fields.E201 :
primary_key
не является допустимым параметром для поляFileField
. - fields.E202 : Параметр
upload_to
изFileField
должен быть относительный путь, а не абсолютный путь. - fields.E210 : Невозможно использовать,
ImageField
потому что Pillow не установлен.
Модели ¶
- models.E001 :
<swappable>
нет в формеétiquette_app.nom_app
. - models.E002 :
<RÉGLAGE>
относится к<modèle>
, который не установлен или является абстрактным. - models.E003 : Модель имеет два идентичных отношения «многие ко многим» через промежуточную модель
<étiquette_app>.<modèle>
. - models.E004 :
id
может использоваться как имя поля, только если это поле также определяетprimary_key=True
. - models.E005 : поле
<nom_de_champ>
родительской модели<modèle>
конфликтует с полем<nom_de_champ>
родительской модели<modèle>
. - models.E006 : поле конфликтует с полем
<nom_de_champ>
модели<modèle>
. - models.E007 : поле
<nom_de_champ>
имеет имя столбца<nom_de_colonne>
, которое используется другим полем. - models.E008 :
index_together
должен быть списком или кортежем. - models.E009 : все элементы
index_together
должны быть списками или кортежами. - models.E010 :
unique_together
должен быть списком или кортежем. - models.E011 : все элементы
unique_together
должны быть списками или кортежами. - models.E012 :
indexes/index_together/unique_together
относится к несуществующему полю<nom_de_champ>
. - models.E013 :
indexes/index_together/unique_together
относится к<nom_de_champ>
типуManyToManyField
, но эти поля не поддерживаются для этой опции. - models.E014 :
ordering
должен быть кортежем или списком (даже если вы хотите отсортировать по одному полю). - models.E015 :
ordering
относится к несуществующему полю, связанному полю или поиску<nom_de_champ>
. - models.E016 :
indexes/index_together/unique_together
относится к полю,<nom_de_champ>
которое не является локальным для модели<modèle>
. - models.E017 : Прокси- модель
<modèle>
содержит поля модели. - models.E018 : автоматически созданное имя столбца слишком длинное для поля
<champ>
. Максимальная длина указана<longueur_maximum>
для базы данных<alias>
. - models.E019 : автоматически созданное имя столбца слишком длинное для поля «многие ко многим»
<champ>
. Максимальная длина указана<longueur_maximum>
для базы данных<alias>
. - models.E020 : метод класса
<modèle>.check()
в настоящее время перегружен. - models.E021 :
ordering
иorder_with_respect_to
не могут использоваться одновременно. - models.E022 :
<fonction>
содержит отложенную ссылку на<étiquette_app>.<modèle>
, но приложение<étiquette_app>
не установлено или не предоставляет модель<modèle>
. - models.E023 :
<modèle>
имя модели не может начинаться или заканчиваться знаком подчеркивания, поскольку оно конфликтует с синтаксисом запроса. - models.E024 :
<modèle>
название модели не может содержать двойное подчеркивание, поскольку оно конфликтует с синтаксисом запроса. - fields.E025 : свойство
<nom_de_propriété>
конфликтует с аксессором связанного поля. - models.E026 : модель не может иметь более одного поля с
primary_key=True
. - models.W027 : не поддерживает проверочные ограничения.
<base de données>
- models.E028 :
db_table
<table_bd>
используется несколько моделей: .<liste de modèles>
- models.E029 : имя индекса
<index>
не уникально для модели<modèle>
. - models.E030 : имя индекса
<index>
не является уникальным среди моделей:<liste_modèles>
. - models.E031 : имя ограничения
<contrainte>
не уникально для модели<modèle>
. - models.E032 : имя ограничения
<contrainte>
не уникально среди моделей<liste_modèles>
. - models.E033 :
<index>
имя индекса не может начинаться с символа подчеркивания или числа. - models.E034 :
<index>
Имя индекса не может содержать больше<max_length>
символов. - models.W035 :
db_table
<table_bd>
используется несколько моделей: .<liste de modèles>
- models.W036 :
<database>
не поддерживает уникальные ограничения с условиями. - models.W037 :
<database>
не поддерживает индексы с условиями. - models.W038 :
<database>
не поддерживает отложенные уникальные ограничения.
Безопасность ¶
Проверки безопасности не делают ваш сайт безопасным. Они не проверяют ваш код, не обнаруживают вторжений или чего-либо особенно сложного. Скорее, они заботятся о списке автоматических проверок, которые обнаруживают наиболее очевидные проблемы, которые могут помочь вам повысить безопасность сайта.
Некоторые из этих элементов управления могут не подходить для вашей конкретной конфигурации развертывания. Например, если вы делегировали перенаправление HTTP на HTTPS подсистеме балансировки нагрузки, было бы неудобно постоянно получать уведомления о том, что параметр SECURE_SSL_REDIRECT
неактивен. Используйте, SILENCED_SYSTEM_CHECKS
чтобы отключить ненужные элементы управления.
Если указана опция, выполняются следующие проверки :check --deploy
- security.W001 : Промежуточное
django.middleware.security.SecurityMiddleware
не наMIDDLEWARE
то , что сделает неэффективной настройкиSECURE_HSTS_SECONDS
,SECURE_CONTENT_TYPE_NOSNIFF
,SECURE_BROWSER_XSS_FILTER
,SECURE_REFERRER_POLICY
иSECURE_SSL_REDIRECT
. - security.W002 : Промежуточное ПО
django.middleware.clickjacking.XFrameOptionsMiddleware
отсутствуетMIDDLEWARE
, поэтому ваши страницы не будут обслуживаться с заголовком'x-frame-options'
. Если нет веских причин для отображения вашего сайта во фрейме, рекомендуется включить этот заголовок, чтобы предотвратить атаки с захватом. - security.W003 : Похоже, вы не используете встроенную защиту Django от взлома межсайтовых запросов с помощью специального промежуточного программного обеспечения (
django.middleware.csrf.CsrfViewMiddleware
не указано вMIDDLEWARE
). Включение промежуточного программного обеспечения - самый безопасный способ гарантировать, что в этой защите не останется дыр. - security.W004 : Вы не установили значение для параметра
SECURE_HSTS_SECONDS
. Если весь ваш сайт полностью обслуживается SSL, можно рассмотреть возможность установки значения и включения HSTS (HTTP Strict Transport Security) . Но не забудьте сначала прочитать документацию; поспешная активация HSTS может вызвать серьезные и необратимые проблемы. - security.W005 : Вы не установили настройки
SECURE_HSTS_INCLUDE_SUBDOMAINS
вTrue
. Без него ваш сайт потенциально уязвим для атак через небезопасное соединение с субдоменом. Выбирайте значениеTrue
только в том случае, если вы уверены, что все субдомены в вашем домене обслуживаются исключительно SSL. - security.W006 : для этого параметра
SECURE_CONTENT_TYPE_NOSNIFF
не задано значениеTrue
, поэтому ваши страницы не будут отображаться с заголовком . Вам следует рассмотреть возможность включения этого заголовка, чтобы браузеры не могли неправильно определять типы контента.'X-Content-Type-Options: nosniff'
- security.W007 : для этого параметра
SECURE_BROWSER_XSS_FILTER
не задано значениеTrue
, поэтому ваши страницы не будут обслуживаться с заголовком . Вам следует рассмотреть возможность включения этого заголовка, чтобы включить XSS-фильтрацию браузеров и, таким образом, помочь предотвратить XSS-атаки. Этот элемент управления был удален в Django 3.0, поскольку заголовок больше не поддерживается современными браузерами.'X-XSS-protection: 1; mode=block'
X-XSS-Protection
- security.W008 : Значение
SECURE_SSL_REDIRECT
не установленоTrue
. Если ваш сайт не должен быть доступен как через SSL, так и через соединения без SSL, рекомендуется либо установить этот параметрTrue
, либо настроить балансировщик нагрузки или обратный прокси-сервер для перенаправления всех подключений на HTTPS. - security.W009 : секретный ключ
SECRET_KEY
содержит менее 50 символов или менее 5 различных символов. Пожалуйста, сгенерируйте длинный и случайный секретный ключ, иначе многие функции Django, связанные с безопасностью, будут уязвимы для атак. - security.W010 : приложение
django.contrib.sessions
находится в ваших настройках,INSTALLED_APPS
но вы не настроилиSESSION_COOKIE_SECURE
егоTrue
. Использование безопасного сеансового cookie затрудняет попытки снифферов сетевого трафика вторгнуться в пользовательские сеансы. - security.W011 :
django.contrib.sessions.middleware.SessionMiddleware
вMIDDLEWARE
, но вы не установилиSESSION_COOKIE_SECURE
вTrue
. Использование безопасного сеансового cookie затрудняет попытки снифферов сетевого трафика вторгнуться в пользовательские сеансы. - security.W012 :
SESSION_COOKIE_SECURE
не установленоTrue
. Использование безопасного сеансового cookie затрудняет попытки снифферов сетевого трафика вторгнуться в пользовательские сеансы. - security.W013 : приложение
django.contrib.sessions
находится в ваших настройках,INSTALLED_APPS
но вы не установилиSESSION_COOKIE_HTTPONLY
егоTrue
. Использование файла cookie сеанса затрудняетHttpOnly
попытки атак межсайтового сценария вторгнуться в сеансы пользователя. - security.W014 :
django.contrib.sessions.middleware.SessionMiddleware
вMIDDLEWARE
, но вы не установилиSESSION_COOKIE_HTTPONLY
вTrue
. Использование файла cookie сеанса затрудняетHttpOnly
попытки атак межсайтового сценария вторгнуться в сеансы пользователя. - security.W015 :
SESSION_COOKIE_HTTPONLY
не установленоTrue
. Использование файла cookie сеанса затрудняетHttpOnly
попытки атак межсайтового сценария вторгнуться в сеансы пользователя. - security.W016 :
CSRF_COOKIE_SECURE
не установленоTrue
. Использование безопасного файла cookie CSRF затрудняет попытки снифферов сетевого трафика украсть токен CSRF. - security.W017 :
CSRF_COOKIE_HTTPONLY
не установленоTrue
. Использование файла cookie CSRF затрудняетHttpOnly
попытки атак с использованием межсайтовых сценариев украсть токен CSRF. Этот элемент управления удален в Django 1.11, потому что настройка не дает конкретных преимуществ.CSRF_COOKIE_HTTPONLY
- security.W018 :
DEBUG
не следует устанавливать значениеTrue
для развернутого приложения Django. - security.W019 :
django.middleware.clickjacking.XFrameOptionsMiddleware
НайденоMIDDLEWARE
, ноX_FRAME_OPTIONS
не установлено'DENY'
. За исключением случаев, когда у сайта есть веская причина для размещения некоторых его частей во фрейме, вам следует изменить этот параметр на'DENY'
. - security.W020 : параметр
ALLOWED_HOSTS
не может быть пустым при развертывании. - security.W021 : Вы не установили настройки
SECURE_HSTS_PRELOAD
вTrue
. Без этого ваш сайт не может быть добавлен в список предварительной загрузки браузеров. - security.W022 : Вы не выполнили настройку
SECURE_REFERRER_POLICY
. Без него ваш сайт не будет отправлять заголовок Referrer-Policy. Вам следует рассмотреть возможность включения этого заголовка для защиты конфиденциальности пользователя. - security.E023 : Значение, содержащееся в настройке,
SECURE_REFERRER_POLICY
недействительно.
Следующие проверки подтверждают правильность настройки параметров безопасности:
- security.E100 :
DEFAULT_HASHING_ALGORITHM
должно быть'sha1'
или'sha256'
.
Сигналы ¶
- signal.E001 :
<gestionnaire>
подключен к сигналу<signal>
с отложенной ссылкой на отправителя , но не установлен или не предоставляет модель .<étiquette app>.<modèle>
<étiquette app>
<modèle>
Перевод ¶
В вашей конфигурации перевода выполняются следующие проверки:
- translation.E001 : установка
LANGUAGE_CODE
содержит недопустимое значение:<valeur>
. - translation.E002 : код языка в условиях
LANGUAGES
не является действительным:<valeur>
. - translation.E003 : код языка в условиях
LANGUAGES_BIDI
не является действительным:<valeur>
. - translation.E004 : значение, содержащееся в настройке,
LANGUAGE_CODE
отсутствует в настройкеLANGUAGES
.
URL ¶
В конфигурации вашего URL-адреса выполняются следующие проверки:
- urls.W001 : шаблон URL
<pattern>
используетсяinclude()
с выражением,route
заканчивающимся на$
. Удалите доллар из выражения,route
чтобы избежать проблем при включении URL-адресов. - urls.W002 : шаблон URL
<pattern>
имеет выражение,route
начинающееся с/
. Удалите эту косую черту, поскольку она не нужна. Если на этот шаблон ссылается ainclude()
, убедитесь, что онinclude()
заканчивается на/
. - urls.W003 : URL шаблон
<pattern>
имеет имя ,name
содержащее:
. Удалите эти двоеточия, чтобы избежать неоднозначных ссылок на пространства имен. - urls.E004 : шаблон URL
<motif>
недействителен. Убедитесь, чтоurlpatterns
это список экземпляровpath()
илиre_path()
. - urls.W005 : пространство имен URL не уникально. Некоторые URL-адреса в этом пространстве имен могут быть неразрешимыми.
<espace de nom>
- urls.E006 : settings
MEDIA_URL
/STATIC_URL
должен заканчиваться косой чертой. - urls.E007 :
handlerXXX
Пользовательское представление'chemin.vers.vue'
не принимает правильное количество параметров (…). - urls.E008 :
handlerXXX
Пользовательское представление'chemin.vers.vue'
не может быть импортировано.
Управление приложением contrib
¶
admin
¶
Все проверки интерфейса администратора выполняются под ярлыком admin
.
Следующие проверки выполняются для любого класса (или подкласса) ModelAdmin
, зарегистрированного на сайте администрирования:
- admin.E001 : значение
raw_id_fields
должно быть списком или кортежем. - admin.E002 : значение
raw_id_fields[n]
относится к<nom_de_champ>
, которое не является атрибутом<modèle>
. - admin.E003 : значение
raw_id_fields[n]
должно быть внешним ключом или полем «многие ко многим». - admin.E004 : значение
fields
должно быть списком или кортежем. - admin.E005 :
fieldsets
иfields
оба указаны. - admin.E006 : значение
fields
содержит повторяющиеся поля. - admin.E007 : значение
fieldsets
должно быть списком или кортежем. - admin.E008 : значение
fieldsets[n]
должно быть списком или кортежем. - admin.E009 : значение
fieldsets[n]
должно иметь длину 2. - admin.E010 : Значение
fieldsets[n][1]
должно быть словарём. - admin.E011 : Значение
fieldsets[n][1]
должно содержать ключfields
. - admin.E012 : есть повторяющиеся поля в
fieldsets[n][1]
. - admin.E013 :
fields[n]/fieldsets[n][m]
Невозможно включить поле,ManyToManyField
<nom_de_champ>
потому что это поле вручную определяет шаблон отношения. - admin.E014 : Значение
exclude
должно быть списком или кортежем. - admin.E015 : значение
exclude
содержит повторяющиеся поля. - admin.E016 : Значение
form
должно наследоваться отBaseModelForm
. - admin.E017 : значение
filter_vertical
должно быть списком или кортежем. - admin.E018 : значение
filter_horizontal
должно быть списком или кортежем. - admin.E019 : значение
filter_vertical[n]/filter_vertical[n]
относится к<nom_de_champ>
, которое не является атрибутом<modèle>
. - admin.E020 : Значение
filter_vertical[n]/filter_vertical[n]
должно быть полем «многие ко многим». - admin.E021 : Значение
radio_fields
должно быть словарём. - admin.E022 : значение
radio_fields
относится к<nom_de_champ>
, которое не является атрибутом<modèle>
. - admin.E023 : значение
radio_fields
относится к<nom_de_champ>
, которое не является ключомForeignKey
и не имеет определенияchoices
. - admin.E024 : Значение
radio_fields[<nom_de_champ>]
должно быть либоadmin.HORIZONTAL
илиadmin.VERTICAL
. - admin.E025 : значение
view_on_site
должно быть либо исполняемым объектом, либо логическим значением. - admin.E026 : Значение
prepopulated_fields
должно быть словарём. - admin.E027 : значение
prepopulated_fields
относится к<nom_de_champ>
, которое не является атрибутом<modèle>
. - admin.E028 : значение
prepopulated_fields
относится к<nom_de_champ>
, которое не должно быть полеDateTimeField
,ForeignKey
,OneToOneField
илиManyToManyField
. - admin.E029 : значение
prepopulated_fields[<nom_de_champ>]
должно быть списком или кортежем. - admin.E030 : значение
prepopulated_fields
относится к<nom_de_champ>
, которое не является атрибутом<modèle>
. - admin.E031 : Значение
ordering
должно быть списком или кортежем. - admin.E032 : значение
ordering
имеет маркер случайного порядка?
, но также содержит другие поля. - admin.E033 : значение
ordering
относится к<nom_de_champ>
, которое не является атрибутом<modèle>
. - admin.E034 : значение
readonly_fields
должно быть списком или кортежем. - admin.E035 : значение
readonly_fields[n]
не вызывается, атрибут или атрибут .<ModelAdmin class>
<model>
- admin.E036 : значение
autocomplete_fields
должно быть списком или кортежем. - admin.E037 : значение
autocomplete_fields[n]
относится к<nom_de_champ>
, которое не является атрибутом<modèle>
. - admin.E038 : значение
autocomplete_fields[n]
должно быть внешним ключом или полем «многие ко многим». - admin.E039 :
<modèle>
Чтобы на него ссылались, необходимо зарегистрировать административный класс модели<modeladmin>.autocomplete_fields
. - admin.E040 :
<modeladmin>
необходимо определить,search_fields
потому что на него ссылается<autre_modeladmin>.autocomplete_fields
.
ModelAdmin
¶
Следующие проверки выполняются для любого класса (или подкласса) ModelAdmin
, зарегистрированного на сайте администрирования:
- admin.E101 : значение
save_as
должно быть логическим. - admin.E102 : значение
save_on_top
должно быть логическим. - admin.E103 : значение
inlines
должно быть списком или кортежем. - admin.E104 : должен наследовать от .
<InlineModelAdmin class>
InlineModelAdmin
- admin.E105 : должен иметь атрибут .
<InlineModelAdmin class>
model
- admin.E106 : Значение должно быть равным единице .
<InlineModelAdmin class>.model
Model
- admin.E107 : значение
list_display
должно быть списком или кортежем. - admin.E108 : значение
list_display[n]
относится к<label>
, которое не является исполняемым объектом, атрибутом , атрибутом или методом .<classe ModelAdmin>
<modèle>
- admin.E109 : Значение
list_display[n]
не может быть полемManyToManyField
. - admin.E110 : значение
list_display_links
должно быть списком, кортежем илиNone
. - admin.E111 : значение
list_display_links[n]
относится к<label>
, которое не определено вlist_display
. - admin.E112 : значение
list_filter
должно быть списком или кортежем. - admin.E113 : значение
list_filter[n]
должно наследоваться отListFilter
. - admin.E114 : значение
list_filter[n]
не должно наследовать отFieldListFilter
. - admin.E115 : значение
list_filter[n][1]
должно наследоваться отFieldListFilter
. - admin.E116 : значение
list_filter[n]
относится к<label>
, которое не относится к полюField
. - admin.E117 : значение
list_select_related
должно быть логическим, кортежем или списком. - admin.E118 : значение
list_per_page
должно быть целым числом. - admin.E119 : значение
list_max_show_all
должно быть целым числом. - admin.E120 : значение
list_editable
должно быть списком или кортежем. - admin.E121 : значение
list_editable[n]
относится к<label>
, которое не является атрибутом<modèle>
. - admin.E122 : Значение
list_editable[n]
относится к<label>
, которого нет вlist_display
. - admin.E123 : Значение
list_editable[n]
не может быть одновременно inlist_editable
и inlist_display_links
. - admin.E124 : значение
list_editable[n]
относится к самому первому полю вlist_display
(<label>
), которое не может использоваться, пока неlist_display_links
будет определено. - admin.E125 :
list_editable[n]
относится к значению<nom_de_champ>
, которое нельзя изменить в интерфейсе администрирования. - admin.E126 : значение
search_fields
должно быть списком или кортежем. - admin.E127 : значение
date_hierarchy
относится к<nom_de_champ>
, которое не относится к полю. - admin.E128 : Значение
date_hierarchy
должно быть полемDateField
илиDateTimeField
. - admin.E129 :
<modeladmin>
необходимо определить методhas_<foo>_permission()
действия<action>
. - admin.E130 :
__name__
атрибуты действий, определенных в,<modeladmin>
должны быть уникальными. Имя<name>
не уникальное.
InlineModelAdmin
¶
Следующие проверки выполняются для каждого InlineModelAdmin
элемента, зарегистрированного как встроенный элемент в классе ModelAdmin
.
- admin.E201 : Вы не можете исключить поле,
<nom_de_champ>
потому что это внешний ключ для родительской модели<étiquette_application>.<modèle>
. - admin.E202 :
<model>
уже неForeignKey
к ./ имеет более чем один к . Вы должны указать атрибут.<parent model>
<model>
ForeignKey
<parent model>
fk_name
- admin.E203 : значение
extra
должно быть целым числом. - admin.E204 : значение
max_num
должно быть целым числом. - admin.E205 : значение
min_num
должно быть целым числом. - admin.E206 : Значение
formset
должно наследоваться отBaseModelFormSet
.
GenericInlineModelAdmin
¶
Следующие проверки выполняются для каждого GenericInlineModelAdmin
элемента, зарегистрированного как встроенный элемент в классе ModelAdmin
.
- admin.E301 :
'champ_ct'
относится к<label>
, которое не является полем<modèle>
. - admin.E302 :
'champ_ct_fk'
относится к<label>
, которое не является полем<modèle>
. - admin.E303 :
<modèle>
нет ключаGenericForeignKey
. - admin.E304 :
<modèle>
не имеет ключа,GenericForeignKey
использующего<nom_de_champ>
поле типа контента и поле идентификатора объекта<nom_de_champ>
.
AdminSite
¶
Для объекта по AdminSite
умолчанию выполняются следующие проверки :
- admin.E401 :
django.contrib.contenttypes
должен быть включен,INSTALLED_APPS
чтобы иметь возможность использовать приложение для администрирования. - admin.E402 :
django.contrib.auth.context_processors.auth
должен быть включен вDjangoTemplates
(TEMPLATES
), если активен механизм аутентификации по умолчанию, чтобы использовать приложение администрирования. - admin.E403 : Для использования административного приложения
DjangoTemplates
необходимо настроить экземплярTEMPLATES
. - admin.E404 :
django.contrib.messages.context_processors.messages
необходимо включить вDjangoTemplates
(TEMPLATES
), чтобы иметь возможность использовать приложение администрирования. - admin.E405 :
django.contrib.auth
должен быть включен,INSTALLED_APPS
чтобы иметь возможность использовать приложение для администрирования. - admin.E406 :
django.contrib.messages
должен быть включен,INSTALLED_APPS
чтобы иметь возможность использовать приложение для администрирования. - admin.E408 :
django.contrib.auth.middleware.AuthenticationMiddleware
должен быть включен,MIDDLEWARE
чтобы иметь возможность использовать приложение для администрирования. - admin.E409 :
django.contrib.messages.middleware.MessageMiddleware
должен быть включен,MIDDLEWARE
чтобы иметь возможность использовать приложение для администрирования. - admin.E410 :
django.contrib.sessions.middleware.SessionMiddleware
должен быть включен,MIDDLEWARE
чтобы иметь возможность использовать приложение для администрирования. - admin.W411 :
django.template.context_processors.request
необходимо включить вDjangoTemplates
(TEMPLATES
), чтобы использовать боковую панель навигации администратора.
auth
¶
- auth.E001 :
REQUIRED_FIELDS
должен быть списком или кортежем. - auth.E002 : Поле, обозначенное как
USERNAME_FIELD
пользовательский шаблон, не должно быть включено вREQUIRED_FIELDS
. - auth.E003 :
<champ>
должен быть уникальным, потому что он обозначен какUSERNAME_FIELD
. - auth.W004 :
<champ>
обозначен какUSERNAME_FIELD
, но не уникален. - auth.E005 : Кодовое имя разрешения
<nom_code>
конфликтует со встроенным разрешением шаблона<modèle>
. - auth.E006 : Кодовое имя разрешения
<nom_code>
дублируется для модели<modèle>
. - auth.E007 : Атрибут
verbose_name
шаблона<modèle>
не должен превышать 244 символа, чтобы его автоматические имена разрешений не превышали 255 символов. - auth.E008 : Именованное разрешение
<nom>
модели<modèle>
превышает 255 символов. - auth.C009 : должен быть атрибутом или свойством, а не методом. Это проблема безопасности, потому что с помощью метода анонимные пользователи будут считаться аутентифицированными!
<modèle utilisateur>.is_anonymous
- auth.C010 : должен быть атрибутом или свойством, а не методом. Это проблема безопасности, потому что с помощью метода анонимные пользователи будут считаться аутентифицированными!
<modèle utilisateur>.is_authenticated
- auth.E011 : имя модели
<model>
должно состоять не более чем из 93 символов, чтобы его встроенные имена разрешений были не более 100 символов. - auth.E012 : кодовое имя
<codename>
модели доступа<model>
превышает 100 символов.
contenttypes
¶
Если модель содержит ключ GenericForeignKey
или связь, выполняются следующие проверки GenericRelation
:
- contenttypes.E001 : ID объекта
GenericForeignKey
указывает на<field>
несуществующее поле . - contenttypes.E002 : Тип содержимого
GenericForeignKey
относится к<field>
несуществующему полю . - contenttypes.E003 :
<champ>
не является ключомForeignKey
. - contenttypes.E004 :
<field>
это неForeignKey
червьcontenttypes.ContentType
. - contenttypes.E005 : имена шаблонов не могут превышать 100 символов.
postgres
¶
К полям шаблона применяются следующие элементы управления django.contrib.postgres
:
- postgres.E001 : в базовом поле таблицы есть ошибки: ...
- postgres.E001 : базовое поле таблицы не может быть полем отношения.
- postgres.E003 :
<field>
default должен быть вызываемым, а не экземпляром, чтобы он не разделялся между всеми экземплярами поля. Эта проверка была изменена наfields.E010
в Django 3.1 .
sites
¶
На каждой модели с помощью менеджера выполняются следующие проверки CurrentSiteManager
:
- sites.E001 : Не удалось
CurrentSiteManager
найти указанное поле<nom_de_champ>
. - sites.E002 :
CurrentSiteManager
нельзя использовать,<champ>
потому что это не внешний ключ или поле "многие ко многим".
staticfiles
¶
Следующие проверки подтверждают django.contrib.staticfiles
правильность настройки:
- staticfiles.E001 : параметр
STATICFILES_DIRS
не является кортежем или списком. - staticfiles.E002 : Параметр
STATICFILES_DIRS
не должен содержать параметрSTATIC_ROOT
. - staticfiles.E003 : Префикс
<préfixe>
в настройкеSTATICFILES_DIRS
не может заканчиваться косой чертой.