РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
531 of 818 menu

SystemCheckError

Исключение SystemCheckError является подклассом CommandError и возбуждается в процессе выполнения системных проверок Django. Оно возникает при обнаружении критических ошибок в проекте, которые делают его неработоспособным. К таким ошибкам относятся проблемы с моделями, неправильные настройки в файле settings.py, несоответствия в миграциях, а также ошибки в пользовательских проверках.

Синтаксис

# Исключение возбуждается автоматически системой проверки # или может быть вызвано вручную: raise SystemCheckError(messages)

Исключение принимает список сообщений об ошибках в качестве аргумента. Обычно оно не вызывается вручную в коде приложения, а генерируется автоматически при запуске сервера или выполнении команд управления, если проверка системы обнаружила проблемы.

Пример

Рассмотрим ситуацию, когда в модели допущена ошибка в определении поля. Например, указан несуществующий параметр:

from django.db import models class Article(models.Model): title = models.CharField(max_length=100) # Ошибка: неправильное имя параметра content = models.TextField(max_lenght=500)

При попытке запустить сервер или выполнить проверку, Django вызовет исключение:

$ python manage.py check "SystemCheckError: System check identified some issues"

Пример

Ошибка также возникает при проблемах с файлом настроек. Например, при отсутствии обязательного параметра:

# settings.py # Ошибка: отсутствует обязательная настройка SECRET_KEY = ''

Система проверки обнаружит пустой ключ и вызовет исключение с детальным сообщением:

$ python manage.py check --deploy "SystemCheckError: System check identified some issues"

Пример

Исключение может быть вызвано и при ошибках в пользовательских проверках. Создадим собственную проверку для модели:

from django.core.checks import register, Error @register() def check_article_status(app_configs, **kwargs): errors = [] from myapp.models import Article if Article.objects.filter(status='draft').count() > 100: errors.append( Error( 'Too many draft articles', obj=Article, id='myapp.E001', ) ) return errors

Если условие выполняется, проверка вернет ошибку, которая будет преобразована в исключение:

$ python manage.py check "SystemCheckError: System check identified some issues"

Смотрите также

  • исключение CommandError,
    базовое исключение для ошибок команд управления
  • исключение ImproperlyConfigured,
    которое возникает при некорректной настройке приложения
  • исключение FieldError,
    которое вызывается при ошибках в именах полей модели
  • исключение TemplateDoesNotExist,
    которое возникает при отсутствии шаблона
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить