Настройки и checks
Настройки Django
| Настройка | По умолчанию | Назначение |
|---|---|---|
CHASSIS_USERS_MODULE_ENABLED | True | Глобально включить встроенный users runtime |
CHASSIS_PERMISSION_CHECK | 'group_only' | group_only или user_has_perm |
CHASSIS_PERMISSION_NAME_NORMALIZATION_ENABLED | False | Нормализовать стандартные имена прав Django после migrate |
CHASSIS_PERMISSION_NAME_NORMALIZATION_LANGUAGE | обязателен, если включено | Сейчас 'ru' |
CHASSIS_WORKER_PROVIDER | 'auto' | Имя провайдера, 'auto' или 'none' Добавлено в 1.0.19 |
CHASSIS_WORKER_PROVIDERS | Dramatiq, Celery | Упорядоченные пути классов провайдеров Добавлено в 1.0.19 |
CELERY_BROKER_URL | нет | Определяет настройку провайдера Celery в проекте |
DRAMATIQ_BROKER | нет | Определяет настройку провайдера Dramatiq в проекте Добавлено в 1.0.19 |
STORAGES['media'] | хранилище проекта | Хранилище файлов import/export |
CHASSIS_LOGIN_ATTEMPT_LIMITS_ENABLED | True | Применять задержки расписания попыток входа |
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.20Chassis поставляет 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.20pip 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. Ошибки других отсутствующих импортов сохраняют исходную причину.
| Параметр | По умолчанию | Переменная окружения |
|---|---|---|
--host | 0.0.0.0 | — |
--port, -p | 8000 | PORT |
--workers, -w | 2 | UVICORN_WORKERS |
--log-level, -l | info | — |
--timeout | 30 секунд, graceful shutdown | — |
--timeout-keep-alive | 5 секунд | — |
--ws-max-size | 16777216 байт | UVICORN_WS_MAX_SIZE |
--ws-max-queue | 32 frames | UVICORN_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]'
pip install 'django-chassis[dramatiq]'
Выбор worker применяется ко всем задачам Chassis. Регистрация и дополнительные
провайдеры описаны в Фоновых задачах, а единый вариант
формы WORKER — в Backend import и export.