Система проверки фреймворка
Система проверки фреймворка — это набор статических проверок для валидации проектов Django. Она обнаруживает распространённые проблемы и предоставляет подсказки по их исправлению. Фреймворк расширяем, поэтому вы можете легко добавить свои собственные проверки.
Подробная информация о добавлении собственных проверок и их интеграции с системами проверок Django приведена в руководстве Руководство по теме системной проверки.
Справочник API
CheckMessage
-
class CheckMessage(level, msg, hint, obj=None, id=None)[source]
Предупреждения и ошибки, генерируемые системами проверок, должны быть экземплярами CheckMessage. Экземпляр инкапсулирует одну отчётную ошибку или предупреждение. Он также предоставляет контекст и подсказки, относящиеся к сообщению, и уникальный идентификатор, используемый для фильтрации.
Аргументы конструктора:
-
level - Уровень важности сообщения. Используйте одно из предопределённых значений:
DEBUG,INFO,WARNING,ERROR,CRITICAL. Если уровень равен или большеERROR, Django не позволит выполнить команды управления. Сообщения с уровнем нижеERROR(то есть предупреждения) выводятся в консоль, но могут быть отключены. -
msg - Короткий (менее 80 символов) строковый текст, описывающий проблему. Строка не должна содержать символы новой строки.
-
hint - Строка в одну строку, предоставляющая подсказку по исправлению проблемы. Если подсказку предоставить невозможно или она очевидна из сообщения об ошибке, подсказку можно опустить или использовать значение
None. -
obj - Необязательно. Объект, предоставляющий контекст для сообщения (например, модель, в которой была обнаружена проблема). Объект должен быть моделью, полем, менеджером или любым другим объектом, определяющим метод
__str__(в Python 2 вам нужно определить метод__unicode__). Метод используется при отображении всех сообщений, и его результат предшествует сообщению. -
id - Необязательная строка. Уникальный идентификатор проблемы. Идентификаторы должны соответствовать шаблону
applabel.X001, гдеX— одна из буквCEWID, указывающая на уровень важности сообщения (Cдля критических,Eдля ошибок). Число может быть назначено приложением, но должно быть уникальным в пределах этого приложения.
Существуют подклассы для упрощения создания сообщений с общими уровнями. При их использовании вы можете опустить аргумент level, так как он подразумевается именем класса.
-
class Debug(msg, hint, obj=None, id=None)[source]
-
class Info(msg, hint, obj=None, id=None)[source]
-
class Warning(msg, hint, obj=None, id=None)[source]
-
class Error(msg, hint, obj=None, id=None)[source]
-
class Critical(msg, hint, obj=None, id=None)[source]
Встроенные проверки
Встроенные метки
Системные проверки Django организованы с использованием следующих меток:
-
models: Проверки, управляющие определениями моделей, полей и менеджеров. -
signals: Проверки заявлений сигналов и регистрации обработчиков. -
admin: Проверки любых заявлений админского интерфейса. -
compatibility: Выявление потенциальных проблем при обновлении версии. -
security: Проверки конфигурации, связанной с безопасностью.
Некоторые проверки могут быть зарегистрированы с несколькими метками.
Основные системные проверки
Модели
-
models.E001:
<swappable>не соответствует шаблонуapp_label.app_name. -
models.E002:
<SETTING>ссылается на<model>, которое не установлено или является абстрактным. -
models.E003: Модель имеет две связи «многие ко многим» через промежуточную модель
<app_label>.<model>. -
models.E004:
idможет использоваться только как имя поля, если поле также устанавливаетprimary_key=True. -
models.E005: Поле
<field name>из родительской модели<model>конфликтует с полем<field name>из родительской модели<model>. -
models.E006: Поле конфликтует с полем
<field name>модели<model>. -
models.E007: Поле
<field name>имеет имя столбца<column name>, которое используется другим полем. -
models.E008:
index_togetherдолжно быть списком или кортежем. -
models.E009: Все элементы
index_togetherдолжны быть списками или кортежами. -
models.E010:
unique_togetherдолжно быть списком или кортежем. -
models.E011: Все элементы
unique_togetherдолжны быть списками или кортежами. -
models.E012:
index_together/unique_togetherссылается на несуществующее поле<field name>. -
models.E013:
index_together/unique_togetherссылается наManyToManyField<field name>, ноManyToManyFieldдля этого варианта не поддерживаются. -
models.E014:
orderingдолжно быть кортежем или списком (даже если вы хотите сортировать только по одному полю). -
models.E015:
orderingссылается на несуществующее поле<field name>. -
models.E016:
index_together/unique_togetherссылается на поле<field_name>, которое не локально для модели<model>. -
models.E017: Модель-прокси
<model>содержит поля модели. -
models.E018: Сгенерированное имя столбца слишком длинное для поля
<field>. Максимальная длина —<maximum length>для базы данных<alias>. -
models.E019: Сгенерированное имя столбца слишком длинное для поля M2M
<M2M field>. Максимальная длина —<maximum length>для базы данных<alias>. -
models.E020: Метод класса
<model>.check()в настоящее время переопределён.
Поля
- fields.E001: Имена полей не должны оканчиваться на символ подчёркивания.
-
fields.E002: Имена полей не должны содержать
"__". -
fields.E003:
pk— зарезервированное слово, которое нельзя использовать в качестве имени поля. -
fields.E004:
choicesдолжно быть итерируемым объектом (например, списком или кортежем). -
fields.E005:
choicesдолжно быть итерируемым объектом, возвращающим кортежи(actual value, human readable name). -
fields.E006:
db_indexдолжно бытьNone,TrueилиFalse. -
fields.E007: Первичные ключи не должны содержать
null=True. -
fields.E100:
AutoFieldдолжны устанавливать primary_key=True. -
fields.E110:
BooleanFieldне принимают значения null. -
fields.E120:
CharFieldдолжны определять атрибутmax_length. -
fields.E121:
max_lengthдолжно быть положительным целым числом. -
fields.W122:
max_lengthигнорируется при использовании сIntegerField. -
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.W900:
IPAddressFieldустарело. Поддержка его (кроме исторических миграций) будет удалена в Django 1.9.
Поля файлов
-
fields.E200:
unique— некорректный аргумент дляFileField. -
fields.E201:
primary_key— некорректный аргумент дляFileField. -
fields.E210: Невозможно использовать
ImageField, так как Pillow не установлен.
Связанные поля
-
fields.E300: Поле определяет отношение с моделью
<model>, которая либо не установлена, либо является абстрактной. -
fields.E301: Поле определяет отношение с моделью
<model>, которая была заменена. -
fields.E302: Доступ к полю
<field name>конфликтует с полем<field name>. -
fields.E303: Имя обратного запроса для поля
<field name>конфликтует с полем<field name>. -
fields.E304: Имя поля
<field name>конфликтует с доступом к<field name>. -
fields.E305: Имя поля
<field name>конфликтует с именем обратного запроса для<field name>. -
fields.E306: Имя связи должно быть допустимым идентификатором Python или заканчиваться на
'+'. -
fields.E310: Ни одно из полей
<field1>,<field2>, ... в модели<model>не имеет ограниченияunique=True. -
fields.E311:
<model>должен установитьunique=True, так как на него ссылаетсяForeignKey. -
fields.E320: Поле указывает на
on_delete=SET_NULL, но не может быть пустым. -
fields.E321: Поле указывает на
on_delete=SET_DEFAULT, но не имеет значения по умолчанию. -
fields.E330:
ManyToManyFieldне могут быть уникальными. -
fields.E331: Поле указывает на много-ко-многие отношения через модель
<model>, которая не установлена. - fields.E332: Много-ко-многие поля со промежуточными таблицами не должны быть симметричными.
-
fields.E333: Модель используется как промежуточная модель
<model>, но она имеет более двух внешних ключей к<model>, что является неоднозначным. Вы должны указать, какие два внешних ключа Django должен использовать, используя ключевой аргументthrough_fields. -
fields.E334: Модель используется как промежуточная модель
<model>, но она имеет более одного внешнего ключа от<model>, что является неоднозначным. Вы должны указать, какой внешний ключ Django должен использовать, используя ключевой аргументthrough_fields. -
fields.E335: Модель используется как промежуточная модель
<model>, но она имеет более одного внешнего ключа к<model>, что является неоднозначным. Вы должны указать, какой внешний ключ Django должен использовать, используя ключевой аргументthrough_fields. -
fields.E336: Модель используется в качестве промежуточной модели
<model>, но она не имеет внешнего ключа к<model>или<model>. -
fields.E337: Поле указывает на
through_fields, но не предоставляет имена двух полей связи, которые должны использоваться для отношения через<model>. -
fields.E338: Промежуточная модель
<through model>не имеет поля<field name>. -
fields.E339:
<model>.<field name>не является внешним ключом к<model>. -
fields.W340:
nullне оказывает влияния наManyToManyField. -
fields.W341:
ManyToManyFieldне поддерживаетvalidators. -
fields.W342: Установка
unique=TrueнаForeignKeyимеет тот же эффект, что и использованиеOneToOneField.
Сигналы
-
signals.E001:
<handler>был подключен к сигналу<signal>с леничной ссылкой на отправителя<model>, который не установлен.
Обратная совместимость
Следующие проверки выполняются, чтобы предупредить пользователя о потенциальных проблемах, которые могут возникнуть в результате обновления версии.
- 1_6.W001: Некоторые модульные тесты проекта могут не выполняться как ожидалось. Эта проверка была удалена в Django 1.8 из-за ложных срабатываний.
-
1_6.W002:
BooleanFieldне имеет значения по умолчанию. Эта проверка была удалена в Django 1.8 из-за ложных срабатываний. -
1_7.W001: Django 1.7 изменил глобальные значения по умолчанию для
MIDDLEWARE_CLASSES.django.contrib.sessions.middleware.SessionMiddleware,django.contrib.auth.middleware.AuthenticationMiddleware, иdjango.contrib.messages.middleware.MessageMiddlewareбыли удалены из значений по умолчанию. Если вашему проекту необходимы эти средства, вам следует настроить это значение. -
1_8.W001: Самостоятельные настройки
TEMPLATE_*устарели в Django 1.8, и словарьTEMPLATESимеет приоритет. Вы должны поместить значения следующих настроек в ваш словарь по умолчаниюTEMPLATES:TEMPLATE_DIRS,ALLOWED_INCLUDE_ROOTS,TEMPLATE_CONTEXT_PROCESSORS,TEMPLATE_DEBUG,TEMPLATE_LOADERS,TEMPLATE_STRING_IF_INVALID.
Администрирование
Все проверки администратора выполняются в рамках тега admin.
Следующие проверки выполняются для любого ModelAdmin (или подкласса), зарегистрированного в админском сайте:
-
admin.E001: Значение
raw_id_fieldsдолжно быть списком или кортежем. -
admin.E002: Значение
raw_id_fields[n]относится к<field name>, что не является атрибутом<model>. -
admin.E003: Значение
raw_id_fields[n]должно бытьForeignKeyилиManyToManyField. -
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<field name>, так как это поле вручную указывает модель связи. -
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]относится к<field name>, что не является атрибутом<model>. -
admin.E020: Значение
filter_vertical[n]/filter_vertical[n]должно бытьManyToManyField. -
admin.E021: Значение
radio_fieldsдолжно быть словарем. -
admin.E022: Значение
radio_fieldsотносится к<field name>, что не является атрибутом<model>. -
admin.E023: Значение
radio_fieldsотносится к<field name>, что не являетсяForeignKey, и не имеет определенияchoices. -
admin.E024: Значение
radio_fields[<field name>]должно быть либоadmin.HORIZONTALилиadmin.VERTICAL. -
admin.E025: Значение
view_on_siteдолжно быть вызываемой функцией или булевым значением. -
admin.E026: Значение
prepopulated_fieldsдолжно быть словарем. -
admin.E027: Значение
prepopulated_fieldsотносится к<field name>, что не является атрибутом<model>. -
admin.E028: Значение
prepopulated_fieldsотносится к<field name>, которое не должно бытьDateTimeField,ForeignKeyилиManyToManyField. -
admin.E029: Значение
prepopulated_fields[<field name>]должно быть списком или кортежем. -
admin.E030: Значение
prepopulated_fieldsотносится к<field name>, что не является атрибутом<model>. -
admin.E031: Значение
orderingдолжно быть списком или кортежем. -
admin.E032: Значение
orderingимеет маркер случайной сортировки?, но также содержит и другие поля. -
admin.E033: Значение
orderingотносится к<field name>, что не является атрибутом<model>. -
admin.E034: Значение
readonly_fieldsдолжно быть списком или кортежем. -
admin.E035: Значение
readonly_fields[n]не является вызываемой функцией, атрибутом<ModelAdmin class>, или атрибутом<model>.
ModelAdmin
Следующие проверки выполняются для любого ModelAdmin, зарегистрированного в админском сайте:
-
admin.E101: Значение
save_asдолжно быть булевым. -
admin.E102: Значение
save_on_topдолжно быть булевым. -
admin.E103: Значение
inlinesдолжно быть списком или кортежем. -
admin.E104:
<InlineModelAdmin class>должен наследоваться отBaseModelAdmin. -
admin.E105:
<InlineModelAdmin class>должен иметь атрибутmodel. -
admin.E106: Значение
<InlineModelAdmin class>.modelдолжно бытьModel. -
admin.E107: Значение
list_displayдолжно быть списком или кортежем. -
admin.E108: Значение
list_display[n]ссылается на<label>, которое не является вызываемым объектом, атрибутом<ModelAdmin class>, или атрибутом или методом<model>. -
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>, которое не ссылается на поле. -
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>, которое не является атрибутом<model>. -
admin.E122: Значение
list_editable[n]ссылается на<label>, которое не содержится вlist_display. -
admin.E123: Значение
list_editable[n]не может быть одновременно вlist_editableиlist_display_links. -
admin.E124: Значение
list_editable[n]ссылается на первое поле вlist_display(<label>), которое нельзя использовать, покаlist_display_linksне задано. -
admin.E125: Значение
list_editable[n]ссылается на<field name>, которое не редактируется через админ-панель. -
admin.E126: Значение
search_fieldsдолжно быть списком или кортежем. -
admin.E127: Значение
date_hierarchyссылается на<field name>, которое не является атрибутом<model>. -
admin.E128: Значение
date_hierarchyдолжно бытьDateFieldилиDateTimeField.
InlineModelAdmin
Следующие проверки выполняются для любого InlineModelAdmin, зарегистрированного как вложенный на ModelAdmin.
-
admin.E201: Нельзя исключить поле
<field name>, так как оно является внешним ключом к родительской модели<app_label>.<model>. -
admin.E202:
<model>не имеетForeignKeyк<parent model>./<model>имеет более одногоForeignKeyк<parent model>. -
admin.E203: Значение
extraдолжно быть целым числом. -
admin.E204: Значение
max_numдолжно быть целым числом. -
admin.E205: Значение
min_numдолжно быть целым числом. -
admin.E206: Значение
formsetдолжно наследоваться отBaseModelFormSet.
GenericInlineModelAdmin
Следующие проверки выполняются для любого GenericInlineModelAdmin, зарегистрированного как вложенный на ModelAdmin.
-
admin.E301:
'ct_field'ссылается на<label>, что не является полем в<model>. -
admin.E302:
'ct_fk_field'ссылается на<label>, что не является полем в<model>. -
admin.E303:
<model>не имеетGenericForeignKey. -
admin.E304:
<model>не имеетGenericForeignKeyс использованием поля типа содержимого<field name>и поля идентификатора объекта<field name>.
Auth
-
auth.E001:
REQUIRED_FIELDSдолжно быть списком или кортежем. -
auth.E002: Поле, названное как
USERNAME_FIELDдля модели пользовательской модели, не должно быть включено вREQUIRED_FIELDS. -
auth.E003:
<field>должно быть уникальным, поскольку оно названо какUSERNAME_FIELD. -
auth.W004:
<field>названо какUSERNAME_FIELD, но оно не уникально.
Content Types
Следующие проверки выполняются при наличии в модели GenericForeignKey или GenericRelation:
-
contenttypes.E001: Идентификатор объекта
GenericForeignKeyссылается на несуществующее поле<field>. -
contenttypes.E002: Тип содержимого
GenericForeignKeyссылается на несуществующее поле<field>. -
contenttypes.E003:
<field>не являетсяForeignKey. -
contenttypes.E004:
<field>не являетсяForeignKeyкcontenttypes.ContentType.
Безопасность
Проверки безопасности не гарантируют безопасность вашего сайта. Они не проверяют код, не выполняют обнаружение вторжений и не выполняют сложных задач. Вместо этого они помогают выполнить автоматическую проверку простых моментов, повышающих безопасность вашего сайта.
Некоторые из этих проверок могут быть неподходящими для вашей конкретной конфигурации развертывания. Например, если перенаправление HTTP на HTTPS происходит в балансировщике нагрузки, постоянные предупреждения о необходимости включения SECURE_SSL_REDIRECT могут быть раздражающими. Используйте SILENCED_SYSTEM_CHECKS для отключения ненужных проверок.
Следующие проверки будут выполнены, если вы используете опцию --deploy команды check.
-
security.W001: У вас нет
django.middleware.security.SecurityMiddlewareв вашемMIDDLEWARE_CLASSES, поэтому настройкиSECURE_HSTS_SECONDS,SECURE_CONTENT_TYPE_NOSNIFF,SECURE_BROWSER_XSS_FILTERиSECURE_SSL_REDIRECTне будут иметь эффекта. -
security.W002: У вас нет
django.middleware.clickjacking.XFrameOptionsMiddlewareв вашемMIDDLEWARE_CLASSES, поэтому ваши страницы не будут предоставляться с заголовком'x-frame-options'. Если для вашего сайта нет веской причины предоставляться в фрейме, рассмотрите возможность включения этого заголовка для предотвращения атак «кликабельных фреймов». -
security.W003: Похоже, вы не используете встроенную защиту от межсайтовых поддельных запросов Django через middleware (
django.middleware.csrf.CsrfViewMiddlewareотсутствует в вашемMIDDLEWARE_CLASSES). Включение middleware — самый безопасный подход, чтобы избежать уязвимостей. -
security.W004: Вы не задали значение для настройки
SECURE_HSTS_SECONDS. Если весь ваш сайт предоставляется только через SSL, вы можете рассмотреть возможность задания значения и включения 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, поэтому ваши страницы не будут предоставляться с заголовком'x-xss-protection: 1; mode=block'. Рекомендуется включить этот заголовок для активации фильтрации XSS в браузере и предотвращения атак XSS. -
security.W008: Настройка
SECURE_SSL_REDIRECTне установлена вTrue. Если ваш сайт должен быть доступен как по SSL, так и без него, установите это значение вTrueили настройте балансировщик нагрузки или обратный прокси-сервер для перенаправления всех соединений на HTTPS. -
security.W009: У вас
SECRET_KEYсодержит менее 50 символов или менее 5 уникальных символов. Пожалуйста, сгенерируйте длинный и случайныйSECRET_KEY, иначе многие критически важные для безопасности функции Django будут уязвимы к атакам. -
security.W010: У вас есть
django.contrib.sessionsв вашемINSTALLED_APPS, но вы не установилиSESSION_COOKIE_SECUREвTrue. Использование файла cookie сессии только с защитой SSL затрудняет перехват сеансов пользователей сетевыми шпионами. -
security.W011: У вас есть
django.contrib.sessions.middleware.SessionMiddlewareв вашемMIDDLEWARE_CLASSES, но вы не установилиSESSION_COOKIE_SECUREвTrue. Использование файла cookie сессии только с защитой SSL затрудняет перехват сеансов пользователей сетевыми шпионами. -
security.W012:
SESSION_COOKIE_SECUREне установлено вTrue. Использование файла cookie сессии только с защитой SSL затрудняет перехват сеансов пользователей сетевыми шпионами. -
security.W013: У вас есть
django.contrib.sessionsв вашемINSTALLED_APPS, но вы не установилиSESSION_COOKIE_HTTPONLYвTrue. Использование файла cookie сессии с атрибутомHttpOnlyзатрудняет перехват сеансов пользователей атаками XSS. -
security.W014: У вас есть
django.contrib.sessions.middleware.SessionMiddlewareв вашемMIDDLEWARE_CLASSES, но вы не установилиSESSION_COOKIE_HTTPONLYвTrue. Использование файла cookie сессии с атрибутомHttpOnlyзатрудняет перехват сеансов пользователей атаками XSS. -
security.W015:
SESSION_COOKIE_HTTPONLYне установлено вTrue. Использование файла cookie сессии с атрибутомHttpOnlyзатрудняет перехват сеансов пользователей атаками XSS. -
security.W016:
CSRF_COOKIE_SECUREне установлено вTrue. Использование файла cookie CSRF только с защитой SSL затрудняет перехват токена CSRF сетевыми шпионами. -
security.W017:
CSRF_COOKIE_HTTPONLYне установлено вTrue. Использование файла cookie CSRF с атрибутомHttpOnlyзатрудняет перехват токена CSRF атаками XSS. -
security.W018: В развертывании не должно быть установлено
DEBUGв значениеTrue. -
security.W019: У вас есть
django.middleware.clickjacking.XFrameOptionsMiddlewareв вашемMIDDLEWARE_CLASSES, ноX_FRAME_OPTIONSне установлено в'DENY'. Значение по умолчанию —'SAMEORIGIN', но если для вашего сайта нет веской причины предоставлять другие части сайта во фрейме, измените его на'DENY'.
Сайты
Следующие проверки выполняются для любой модели, использующей CurrentSiteManager:
-
sites.E001:
CurrentSiteManagerне удалось найти поле с именем<field name>. -
sites.E002:
CurrentSiteManagerне может использовать<field>, так как это неForeignKeyилиManyToManyField.
База данных
MySQL
Если вы используете MySQL, будут выполнены следующие проверки:
-
mysql.E001: MySQL не позволяет уникальным
CharFields иметьmax_length> 255.
© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/1.8/ref/checks/