Перейти к основному содержимому

Настройки и checks

Добавлено в 1.0.1

Настройки Django​

НастройкаПо умолчаниюНазначение
CHASSIS_USERS_MODULE_ENABLEDTrueГлобально включить встроенный users runtime
CHASSIS_PERMISSION_CHECK'group_only'group_only или user_has_perm
CHASSIS_PERMISSION_NAME_NORMALIZATION_ENABLEDFalseНормализовать стандартные имена прав Django после migrate
CHASSIS_PERMISSION_NAME_NORMALIZATION_LANGUAGEобязателен, если включеноСейчас 'ru'
CHASSIS_WORKER_PROVIDER'auto'Имя провайдера, 'auto' или 'none' Добавлено в 1.0.19
CHASSIS_WORKER_PROVIDERSDramatiq, CeleryУпорядоченные пути классов провайдеров Добавлено в 1.0.19
CELERY_BROKER_URLнетОпределяет настройку провайдера Celery в проекте
DRAMATIQ_BROKERнетОпределяет настройку провайдера Dramatiq в проекте Добавлено в 1.0.19
STORAGES['media']хранилище проектаХранилище файлов import/export
CHASSIS_LOGIN_ATTEMPT_LIMITS_ENABLEDTrueПрименять задержки расписания попыток входа
CHASSIS_ADMIN_PATH_PREFIX'/admin/'Префикс, который слушают middleware сессий и аудита
GEOIP_COUNTRY_DATABASE_PATHне заданGeoLite2 Country MMDB для страны сессии и профиля

Опциональный middleware для HTML-страниц ошибок Chassis, сессий и журнала Admin:

MIDDLEWARE = [
# ...
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django_chassis.middlewares.UserSessionMiddleware',
'django_chassis.middlewares.AdminAuditMiddleware',
'django_chassis.middlewares.AdminErrorPageMiddleware',
]

См. Пользователи и доступ про GeoIP и попытки входа.

Добавлено в 1.0.7

Задайте CHASSIS_USERS_MODULE_ENABLED = False, если приложение сохраняет собственные профили, сессии Admin, защиту входа и журнал аудита. Это глобальный opt-out: флаг include_users_module конкретного site не может его переопределить.

Fallback страницы ошибок Admin​

Изменено в 1.0.3

Когда полный контекст AdminSite.each_context() недоступен, безопасный fallback HTML-страницы ошибки независимо вызывает get_chassis_footer_context() и сохраняет в footer данные о разработчике, продукте и версии. Если AdminSite не поддерживает этот hook или hook выбрасывает исключение, страница ошибки продолжает рендериться с пустым footer-контекстом.

Большого блока настроек Chassis нет. Поведение сайта и ModelAdmin объявляется на миксинах в Python.

System checks​

ChassisAdminMixin и ChassisAdminSiteMixin регистрируют system checks Django для:

  • ссылок на права действий
  • lookup полей / фильтров export
  • ссылок sidebar на модели и страницы
  • раскладки dashboard (дубли slug, число графиков, глобальные alerts)

Запускайте их вместе с остальными checks Django:

uv run python manage.py check

Ошибки при создании (ImproperlyConfigured) срабатывают, когда инстанцируется AdminSite: неверные контракты доступа страниц, нет прав view_* у PermissionAdminPage, personal-страницы в группах navbar.

Поддерживаемый runtime​

Изменено в 1.0.1
  • Python 3.13, 3.14
  • Django 6.0+

Gunicorn​

Добавлено в 1.0.1 Изменено в 1.0.20

Chassis поставляет manage.py run_gunicorn. Команда поднимает WSGI-приложение проекта sync-воркерами:

pip install 'django-chassis[gunicorn]'
uv run python manage.py run_gunicorn --port=8000 --workers=2

Gunicorn — опциональный extra для WSGI-проектов. ASGI-проекты могут использовать run_uvicorn с extra [uvicorn]. Импорт команды не загружает Gunicorn.

WSGI-цель берётся из --app или Django WSGI_APPLICATION (project.wsgi.application становится project.wsgi:application). Опциональный --config указывает на Python-конфиг Gunicorn.

Uvicorn​

Добавлено в 1.0.20
pip install 'django-chassis[uvicorn]'
uv run python manage.py run_uvicorn --host 0.0.0.0 --port 8000 --workers 2
uv run python manage.py run_uvicorn --workers 1 --reload

Команда использует --app или Django ASGI_APPLICATION. Допускаются формы project.asgi.application и project.asgi:application. Обнаружение команды и --help работают без установленного Uvicorn; при запуске выводится требуемый extra. Ошибки других отсутствующих импортов сохраняют исходную причину.

ПараметрПо умолчаниюПеременная окружения
--host0.0.0.0—
--port, -p8000PORT
--workers, -w2UVICORN_WORKERS
--log-level, -linfo—
--timeout30 секунд, graceful shutdown—
--timeout-keep-alive5 секунд—
--ws-max-size16777216 байтUVICORN_WS_MAX_SIZE
--ws-max-queue32 framesUVICORN_WS_MAX_QUEUE

--reload требует один worker. Порт — 1–65535; workers, таймауты и лимиты WebSocket положительные. Явные CLI-параметры перекрывают переменные окружения. Неправильное неиспользуемое значение окружения не ломает --help.

Опциональные CHASSIS_UVICORN_WS_MAX_SIZE и CHASSIS_UVICORN_WS_MAX_QUEUE задают транспортные defaults проекта. CLI и переменные окружения имеют приоритет перед этими настройками; без них используются стандартные значения из таблицы. Лимиты ограничивают транспорт Uvicorn. Проверки протокола и доступа остаются ответственностью приложения. См. Настройки Uvicorn.

Опциональный extra​

pip install 'django-chassis[celery]'
Добавлено в 1.0.19
pip install 'django-chassis[dramatiq]'

Выбор worker применяется ко всем задачам Chassis. Регистрация и дополнительные провайдеры описаны в Фоновых задачах, а единый вариант формы WORKER — в Backend import и export.

См. также​