• 3.1
  • 3.2
  • 6.1
  • Версия документации: 5.0

Настройки

Предупреждение

Будьте осторожны при переопределении настроек, особенно если значение по умолчанию не пустой словарь или кортеж, например STATICFILES_FINDERS. Убедитесь, что настройка содержит все параметры необходимые для работы модулей Django, которые вы собираетесь использовать.

Основные настройки

Это список основных настроек Django и их значений по умолчанию. Настройки стандартных приложений можно найти ниже.О настройках можно прочитать в разделе о настройке Django.

ABSOLUTE_URL_OVERRIDES

По умолчанию: {} (Пустой словарь)

Словарь, содержащий ключи в формате "app_label.model_name" к функциям, которые принимает объект указанной модели и возвращает ее URL. Эта настройка позволяет переопределить методы get_absolute_url() модели для конкретной установки проекта. Например:

ABSOLUTE_URL_OVERRIDES = {
    "blogs.blog": lambda o: "/blogs/%s/" % o.slug,
    "news.story": lambda o: "/stories/%s/%s/" % (o.pub_year, o.slug),
}

Заметим что название модели должно быть в нижнем регистре не смотря на реальное название класса модели.

ADMINS

По умолчанию: [] (Пустой список)

Кортеж содержит список людей, которые будут получать уведомления об ошибках. Если DEBUG=False и приложение вызывает исключение, Django отравит e-mail с информацией об исключении. Каждый элемент кортежа должен быть кортежем формата (Полное имя, e-mail). Например:

Каждый элемент в списке должен представлять собой кортеж (Полное имя, адрес электронной почты). Пример:

[("John", "john@example.com"), ("Mary", "mary@example.com")]

ALLOWED_HOSTS

По умолчанию: [] (Пустой список)

Список хостов/доменов, для которых может работать текущий сайт. Это сделано для безопасности, чтобы обезопасить от внедрения в куки или письма для сброса пароля ссылок на сторонний сайт подменив HTTP заголовок Host, что возможно при многих, казалось бы безопасных, конфигурациях сервера.

Список может содержать полное имя домена (например 'www.example.com'), тогда значение заголовка Host будет сравниваться с этим значением (проверка без учета регистра и порта). Значение для проверки и поддоменов: '.example.com', удовлетворяет example.com, www.example.com``и всем поддоменам ``example.com. Значение '*' принимает все значения, в этом случае вы сами должны проверять заголовок Host (возможно в middleware, при этом укажите его в MIDDLEWARE_CLASSES).

Django также позволяет использовать полное доменное имя (FQDN). Некоторые браузеры добавляют точку в конце заголовка Host, которую Django удаляет перед проверкой хоста.

Если заголовок Host (или X-Forwarded-Host при USE_X_FORWARDED_HOST) не совпадает ни с одним значением, метод django.http.HttpRequest.get_host() вызовет исключение SuspiciousOperation.

Когда DEBUG имеет значение True и ALLOWED_HOSTS пуст, хост проверяется на соответствие ['.localhost', '127.0.0.1', '[::1]'].

ALLOWED_HOSTS также проверяется при запуске тестов.

Проверка выполняется только в методе get_host(), если вы используете значение заголовка Host непосредственно из request.META, проверка не будет выполнена.

APPEND_SLASH

По умолчанию: True

Если равна True и запрошенный URL не удовлетворяет ни одному URL-шаблону из URLconf и URL не заканчивается косой чертой, Django верен HTTP перенаправление на этот же URL но с косой чертой в конце. Заметим что такое перенаправление может привести к потере всех данных при POST запросе.

Настройка APPEND_SLASH используется только вместе с CommonMiddleware (смотрите Промежуточный слой (Middleware)). Смотрите PREPEND_WWW.

CACHES

Значения по умолчанию:

{
    "default": {
        "BACKEND": "django.core.cache.backends.locmem.LocMemCache",
    }
}

Словарь, содержащий настройки для всех механизмов кэширования Django, используемых в проекте. Содержит псевдонимы кэшей и словарь с настройками для каждого.

CACHES должна определять кэш default и любое количество дополнительных. При определении какого либо кэша кроме кэширования в памяти, вы должны указать дополнительные параметры. Вот полный список доступных настроек.

BACKEND

По умолчанию: '' (Пустая строка)

Бэкенд кэширования, который используется. Django предоставляет следующие бэкенды:

  • 'django.core.cache.backends.db.DatabaseCache'

  • 'django.core.cache.backends.dummy.DummyCache'

  • 'django.core.cache.backends.filebased.FileBasedCache'

  • 'django.core.cache.backends.locmem.LocMemCache'

  • 'django.core.cache.backends.memcached.PyMemcacheCache'

  • 'django.core.cache.backends.memcached.PyLibMCCache'

  • 'django.core.cache.backends.redis.RedisCache'

Вы можете использовать сторонние бэкэнды указав в BACKEND путь для импорта класса (например, mypackage.backends.whatever.WhateverCache).

KEY_FUNCTION

Путь для импорта функции, которая создает конечный ключ кэша из префикса, версии кэша и значения ключа. Функция по умолчанию выглядит следующим образом:

def make_key(key, key_prefix, version):
    return ":".join([key_prefix, str(version), key])

Вы можете использовать любую функцию, которая принимает аналогичные аргументы.

Подробности смотрите в разделе Кэширование.

KEY_PREFIX

По умолчанию: '' (Пустая строка)

Строка, которая будет автоматически добавлена (по умолчанию в начало) ко всем ключам кэша используемых Django.

Подробности смотрите в разделе Кэширование.

LOCATION

По умолчанию: '' (Пустая строка)

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

CACHES = {
    "default": {
        "BACKEND": "django.core.cache.backends.filebased.FileBasedCache",
        "LOCATION": "/var/tmp/django_cache",
    }
}

OPTIONS

По умолчанию: None

Дополнительные параметры для бэкенда кэширования. Доступные параметры зависят от используемого бэкенда кэширования.

Информацию о дополнительных параметрах можно найти в описании бэкендов кэширования.

TIMEOUT

По умолчанию: 300

Количество секунд до того, как запись в кэше считается устаревшей. Если значение этого параметра равно «Нет», срок действия записей кэша не истекает. Значение 0 приводит к немедленному истечению срока действия ключей (фактически «не кэшируется»).

VERSION

По умолчанию: 1

Значения по умолчанию для версии кэша.

Подробности смотрите в разделе Кэширование.

CACHE_MIDDLEWARE_ALIAS

По умолчанию: 'default'

Подключение к кэшу которое используется кэширующим промежуточным слоем.

CACHE_MIDDLEWARE_KEY_PREFIX

По умолчанию: '' (Пустая строка)

Префикс, который будет добавлять для ключей в кэше, которые генерируются кэширующим промежуточным слоем. Этот префикс добавляется к значению KEY_PREFIX, а не заменяет его.

Смотрите Система кэширования Django.

CACHE_MIDDLEWARE_SECONDS

По умолчанию: 600

Целое число секунд по умолчанию для кэширования страницы для промежуточного программного обеспечения кэширования <the-per-site-cache>`.

Смотрите Система кэширования Django.

CSRF_USE_SESSIONS

По умолчанию: False

Следует ли хранить токен CSRF в сеансе пользователя, а не в файле cookie. Для этого требуется использование django.contrib.sessions.

Хранение токена CSRF в файле cookie (по умолчанию в Django) безопасно, но сохранение его в сеансе является обычной практикой в ​​других веб-фреймворках и поэтому иногда требуется аудиторами безопасности.

Поскольку представления ошибок по умолчанию <error-views>` требуют токена CSRF, SessionMiddleware должен появиться в MIDDLEWARE перед любым промежуточным программным обеспечением, которое может вызвать исключение для запуска представления ошибок (например, PermissionDenied), если вы используете CSRF_USE_SESSIONS. См. упорядочение промежуточного программного обеспечения.

CSRF_FAILURE_VIEW

По умолчанию: 'django.views.csrf.csrf_failure'

Путь к функции представления, которое будет использоваться при отклонении запроса при CSRF проверке. Функция должна иметь следующую сигнатуру:

def csrf_failure(request, reason=""): ...

где reason – короткое сообщение (предназначенное для разработчиков или логгирования, не для пользователей) описывающее причину отклонения запроса. Смотрите Подделка межсайтового запроса (CSRF).

django.views.csrf.csrf_failure() принимает дополнительный параметр template_name, который по умолчанию равен '403_csrf.html'. Если шаблон с таким именем существует, он будет использоваться для отображения страницы.

CSRF_HEADER_NAME

По умолчанию: 'HTTP_X_CSRFTOKEN'

Название заголовка запроса, который используется при CSRF проверке.

Как и для других HTTP заголовков request.META, название заголовка нормализуется: все символы приводятся в верхний регистр, дефисы заменяются подчеркиванием, и добавляется префикс 'HTTP_'. Например, если клиент отправляет заголовок 'X-XSRF-TOKEN', настройка должна содержать 'HTTP_X_XSRF_TOKEN'.

CSRF_TRUSTED_ORIGINS

По умолчанию: [] (Пустой список)

Список доверенных источников небезопасных запросов (например, POST).

Для запросов, которые включают заголовок Origin, защита CSRF Django требует, чтобы заголовок соответствовал источнику, присутствующему в заголовке Host.

Для secure небезопасного запроса, который не включает заголовок Origin, запрос должен иметь заголовок Referer, который соответствует источнику, присутствующему в заголовке Host.

Эти проверки предотвращают, например, успешный запрос POST от subdomain.example.com к api.example.com. Если вам нужны небезопасные запросы между источниками, продолжая пример, добавьте в этот список «https://subdomain.example.com» (и/или «http://…», если запросы исходят с небезопасной страницы).

Этот параметр также поддерживает субдомены, поэтому вы можете добавить, например, https://*.example.com, чтобы разрешить доступ со всех субдоменов example.com.

DATABASES

По умолчанию: {} (Пустой словарь)

Словарь содержащий настройки для всех баз данных, которые будут использоваться Django. Словарь содержит псевдонимы используемых баз данных и словарь с настройками для каждой.

Настройка DATABASES должна определять базу данных с псевдонимом default и любое количество дополнительных баз данных.

Самый простой вариант настройки это одна SQLite база данных. Например:

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.sqlite3",
        "NAME": "mydatabase",
    }
}

При подключении к другим типам баз данных, таких как MySQL, Oracle или PostgreSQL, необходимы дополнительные параметры. Смотрите описание настройки ENGINE ниже. Вот пример для PostgreSQL:

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.postgresql",
        "NAME": "mydatabase",
        "USER": "mydatabaseuser",
        "PASSWORD": "mypassword",
        "HOST": "127.0.0.1",
        "PORT": "5432",
    }
}

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

ATOMIC_REQUESTS

По умолчанию: False

Установите в True чтобы обернуть каждое представление в транзакцию для этой базы данных. Смотрите Привязка транзакций к HTTP запросам.

AUTOCOMMIT

По умолчанию: True

Укажите False, если хотите отключить управление транзакциями в Django и реализовать собственное.

ENGINE

По умолчанию: '' (Пустая строка)

Бэкенд базы данных. Django предоставляет следующие бэкенды:

  • 'django.db.backends.postgresql'

  • 'django.db.backends.mysql'

  • 'django.db.backends.sqlite3'

  • 'django.db.backends.oracle'

Вы можете использовать сторонние бэкэнды указав в ENGINE путь для импорта (например, mypackage.backends.whatever).

HOST

По умолчанию: '' (Пустая строка)

Имя хоста используемого при подключении к базе данных. Пустая строка подразумевает localhost. Не используется для SQLite.

Если значение начинается с прямого слэша ('/') и используется MySQL, MySQL будет подключаться через Unix сокет к указанному сокету. Например:

"HOST": "/var/run/mysql"

Если вы используете MySQL и значение не начинается с прямого слэша, значение будет использоваться как имя хоста.

При использовании PostgreSQL, по умолчанию (при пустом HOST) подключение к базе данных будет выполнено через UNIX domain сокет („local“ в pg_hba.conf). Если у вас UNIX domain сокеты находятся не в стандартном каталоге, укажите в этой настройке значение unix_socket_directory из postgresql.conf. Если вы хотите использовать TCP сокеты, укажите в HOST „localhost“ или „127.0.0.1“ („host“ в pg_hba.conf). В Windows необходимо указать HOST, т.к. UNIX domain сокеты не доступны.

NAME

По умолчанию: '' (Пустая строка)

Название используемой базы данных. Для SQLite – это полный путь к файлу базы данных. При указывании пути к файлу, всегда используйте обратные слэшы, даже на Windows (например, C:/homes/user/mysite/sqlite3.db).

CONN_MAX_AGE

По умолчанию: 0

Время существования соединения с базой данных, выраженное в секундах. Используйте 0 для закрытия соединений с базой данных в конце каждого запроса (историческое поведение Django) и None для неограниченного количества постоянных подключений к базе данных <persistent-database-connections>`.

CONN_HEALTH_CHECKS

По умолчанию: False

Если установлено значение «True», существующие постоянные соединения с базой данных будут проверяться на работоспособность перед их повторным использованием в каждом запросе, выполняющем доступ к базе данных. Если проверка работоспособности не пройдена, соединение будет восстановлено без сбоя запроса, когда соединение больше не может использоваться, но сервер базы данных готов принимать и обслуживать новые соединения (например, после перезапуска сервера базы данных, закрывая существующие соединения).

OPTIONS

По умолчанию: {} (Пустой словарь)

Дополнительные параметры используемые при подключении к базе данных. Доступные параметры зависят от используемого бэкенда.

Информацию о дополнительных параметрах можно найти в описании Бэкендов базы данных.

PASSWORD

По умолчанию: '' (Пустая строка)

Пароль, используемый при подключении к базе данных. Не используется для SQLite.

PORT

По умолчанию: '' (Пустая строка)

Порт, используемый при подключении к базе данных. Пустая строка подразумевает порт по умолчанию. Не используется для SQLite.

TIME_ZONE

По умолчанию: None

Строка, представляющая часовой пояс для этого подключения к базе данных или Нет. Эта внутренняя опция настройки DATABASES принимает те же значения, что и общая настройка TIME_ZONE.

Когда USE_TZ имеет значение True, чтение даты и времени из базы данных возвращает известные даты и время с часовым поясом, установленным в значение этой опции, если не None, или в UTC в противном случае.

Если USE_TZ равна False, эта опция должна быть пустой.

  • Если серверная часть базы данных не поддерживает часовые пояса (например, SQLite, MySQL, Oracle), Django читает и записывает дату и время по местному времени в соответствии с этой опцией, если она установлена, и в формате UTC, если она не установлена.

    Изменение часового пояса соединения меняет способ чтения и записи даты и времени в базу данных.

    • Если Django управляет базой данных и у вас нет веских причин поступать иначе, вам следует оставить эту опцию отключенной. Лучше всего хранить дату и время в формате UTC, поскольку это позволяет избежать неоднозначных или несуществующих дат и времени во время перехода на летнее время. Кроме того, получение даты и времени в формате UTC упрощает арифметику даты и времени — нет необходимости учитывать потенциальные изменения смещения при переходе на летнее время.

    • Если вы подключаетесь к сторонней базе данных, которая хранит дату и время в местном времени, а не в формате UTC, вам необходимо установить для этой опции соответствующий часовой пояс. Аналогично, если Django управляет базой данных, но сторонние системы подключаются к той же базе данных и ожидают найти дату и время по местному времени, вам необходимо установить эту опцию.

  • Если серверная часть базы данных поддерживает часовые пояса (например, PostgreSQL), то для часового пояса соединения с базой данных устанавливается это значение.

    Хотя установка опции TIME_ZONE требуется очень редко, бывают ситуации, когда она становится необходимой. В частности, рекомендуется использовать общую настройку TIME_ZONE при работе с необработанными запросами, включающими функции даты/времени, такие как date_trunc() или generate_series() PostgreSQL, особенно при создании основанных на времени рядов, которые переходят на летнее время.

    Это значение можно изменить в любое время, база данных выполнит преобразование даты и времени в настроенный часовой пояс.

    Однако у этого есть обратная сторона: получение всех дат и времени по местному времени усложняет арифметику даты и времени — вы должны учитывать возможные изменения смещения при переходах на летнее время.

    Рассмотрите возможность явного преобразования в местное время с помощью AT TIME ZONE в необработанных SQL-запросах вместо установки опции TIME_ZONE.

DISABLE_SERVER_SIDE_CURSORS

По умолчанию: False

Установите для этого параметра значение «True», если вы хотите отключить использование курсоров на стороне сервера с помощью QuerySet.iterator(). Пул транзакций и курсоры на стороне сервера описывает вариант использования.

Эта настройка используется Oracle.

USER

По умолчанию: '' (Пустая строка)

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

TEST

По умолчанию: {} (Пустой словарь)

Словарь с настройками для тестовой базы данных. Больше о создании и использовании тестовой базы данных смотрите в Тестовая база данных.

Можно использовать следующие настройки:

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.postgresql",
        "USER": "mydatabaseuser",
        "NAME": "mydatabase",
        "TEST": {
            "NAME": "mytestdatabase",
        },
    },
}

Доступны следующие ключи в словаре TEST:

CHARSET

По умолчанию: None

Кодировка(пер. character set encoding) используемая при создании тестовой базы данных. Значение передается непосредственно в базу данных, так что его формат зависит от используемой базы данных.

Поддерживается PostgreSQL (postgresql) и MySQL (mysql) бэкендами.

COLLATION

По умолчанию: None

Порядок сортировки(пер. collation order), используемый при создании тестовой базы данных. Значение передается непосредственно в базу данных, так что его формат зависит от используемой базы данных.

Поддерживается только mysql (подробности смотрите в руководстве MySQL).

DEPENDENCIES

По умолчанию: ['default'] для всех используемых баз данных кроме default, которая не имеет зависимостей.

Порядок создания баз данных. Подробности смотрите в разделе об управлении созданием тестовых баз данных.

МИГРАЦИЯ

По умолчанию: True

Если установлено значение «False», миграция не будет выполняться при создании тестовой базы данных. Это похоже на настройку None в качестве значения в MIGRATION_MODULES, но для всех приложений.

MIRROR

По умолчанию: None

Псевдоним базы данных, которую эта база данных должна отражать во время тестирования. Это зависит от транзакций и поэтому должно использоваться внутри TransactionTestCase вместо TestCase.

Эта настройка предназначена для тестирования master/slave конфигурации нескольких баз данных. Подробности смотрите в разделе о тестировании master/slave конфигурации.

NAME

По умолчанию: None

Название базы данных используемой при тестировании.

Если указано значение по умолчанию (None) для SQLite, будет использована база данных в памяти. Для всех остальных баз данных будет использоваться 'test_' + DATABASE_NAME.

Смотрите Тестовая база данных.

TEMPLATE

Эта настройка используется Oracle.

Имя шаблона (например, 'template0'), на основе которого создается тестовая база данных.

CREATE_DB

По умолчанию: True

Эта настройка используется Oracle.

Если равно False, табличное пространство(пер. tablespace) не будет автоматически создано в начале тестов и не будет удалено после выполнения тестов.

CREATE_USER

По умолчанию: True

Эта настройка используется Oracle.

При False тестовый пользователь не будет создаваться на время выполнения тестов.

USER

По умолчанию: None

Эта настройка используется Oracle.

Имя пользователя, которое будет использоваться Oracle при подключении к базе данных во время выполнения тестов. Если не указано, Django будет использовать 'test_' + USER.

PASSWORD

По умолчанию: None

Эта настройка используется Oracle.

Пароль, который будет использоваться Oracle при подключении к базе данных во время выполнения тестов. Если значение не установлено Django будет использовать «захардкоденное» значение по умолчанию.

MANAGERS

По умолчанию: False

Эта настройка используется Oracle.

Если установлено значение True, будут использоваться табличные пространства Oracle Managed Files (OMF). DATAFILE и DATAFILE_TMP будут игнорироваться.

TBLSPACE

По умолчанию: None

Эта настройка используется Oracle.

Название табличного пространства(пер. tablespace), которое будет использоваться во время выполнения тестов. Если не указано, Django будет использовать 'test_' + USER.

TBLSPACE_TMP

По умолчанию: None

Эта настройка используется Oracle.

Название временного табличного пространства(пер. temporary tablespace), которое будет использоваться во время выполнения тестов. Если не указано, Django будет использовать 'test_' + USER + '_temp'.

DATAFILE

По умолчанию: None

Эта настройка используется Oracle.

Название для файла с данными(datafile), который будет использоваться для TBLSPACE. Если не указан, Django будет использовать TBLSPACE + '.dbf'.

DATAFILE_TMP

По умолчанию: None

Эта настройка используется Oracle.

Название для файла с данными(datafile), который будет использоваться для TBLSPACE_TMP. Если не указан, Django будет использовать TBLSPACE_TMP + '.dbf'.

DATAFILE_MAXSIZE

По умолчанию: '500M'

Эта настройка используется Oracle.

Максимальный размер DATAFILE.

DATAFILE_TMP_MAXSIZE

По умолчанию: '500M'

Эта настройка используется Oracle.

Максимальный размер DATAFILE_TMP.

DATAFILE_SIZE

По умолчанию: '50M'

Эта настройка используется Oracle.

Начальный размер DATAFILE.

DATAFILE_TMP_SIZE

По умолчанию: '50M'

Эта настройка используется Oracle.

Начальный размер DATAFILE_TMP.

DATAFILE_EXTSIZE

По умолчанию: '25M'

Эта настройка используется Oracle.

Величина, на которую расширяется ФАЙЛ ДАННЫХ, когда требуется больше места.

DATAFILE_TMP_EXTSIZE

По умолчанию: '25M'

Эта настройка используется Oracle.

Сумма, на которую увеличивается DATAFILE_TMP, когда требуется больше места.

DATA_UPLOAD_MAX_MEMORY_SIZE

По умолчанию: 2621440 (то есть 2.5 MB).

Максимальный размер в байтах, который может иметь тело запроса до возникновения SuspiciousOperation (RequestDataTooBig). Проверка выполняется при доступе к request.body или request.POST и рассчитывается на основе общего размера запроса, исключая любые данные загрузки файлов. Вы можете установить значение «Нет», чтобы отключить проверку. Приложениям, которые должны получать сообщения необычно большого размера, следует настроить этот параметр.

Объем данных запроса коррелирует с объемом памяти, необходимой для обработки запроса и заполнения словарей GET и POST. Большие запросы могут быть использованы в качестве вектора атаки типа «отказ в обслуживании», если их не контролировать. Поскольку веб-серверы обычно не выполняют глубокую проверку запросов, выполнить подобную проверку на этом уровне невозможно.

Смотрите FILE_UPLOAD_MAX_MEMORY_SIZE.

DATA_UPLOAD_MAX_NUMBER_FIELDS

По умолчанию: 1000

Максимальное количество параметров, которые могут быть получены через GET или POST до того, как будет вызвано SuspiciousOperation (TooManyFields). Вы можете установить значение «Нет», чтобы отключить проверку. Приложениям, которые должны получать необычно большое количество полей формы, следует настроить этот параметр.

Количество параметров запроса коррелирует с количеством времени, необходимым для обработки запроса и заполнения словарей GET и POST. Большие запросы могут быть использованы в качестве вектора атаки типа «отказ в обслуживании», если их не контролировать. Поскольку веб-серверы обычно не выполняют глубокую проверку запросов, выполнить подобную проверку на этом уровне невозможно.

DATA_UPLOAD_MAX_NUMBER_FILES

По умолчанию: 100

Максимальное количество файлов, которые могут быть получены через POST в закодированном запросе multipart/form-data до того, как будет вызван SuspiciousOperation (TooManyFiles). Вы можете установить значение «Нет», чтобы отключить проверку. Приложениям, которые должны получать необычно большое количество полей файлов, следует настроить этот параметр.

Количество принятых файлов коррелирует с количеством времени и памяти, необходимыми для обработки запроса. Большие запросы могут быть использованы в качестве вектора атаки типа «отказ в обслуживании», если их не контролировать. Поскольку веб-серверы обычно не выполняют глубокую проверку запросов, выполнить подобную проверку на этом уровне невозможно.

DATABASE_ROUTERS

По умолчанию: [] (Пустой список)

Список маршрутизаторов(пер. routers), которые будут использоваться для определения какую базу данных использовать при выполнении запроса.

Подробности смотрите в разделе Автоматическая маршрутизация при использовании нескольких баз данных.

DATE_FORMAT

По умолчанию: 'N j, Y' (например, Feb. 4, 2003)

Форматирование по умолчанию, используемое для отображения полей даты в любой части системы. Обратите внимание, что формат, определяемый локалью, имеет более высокий приоритет и вместо него будет применяться. См. допустимые строки формата даты.

Смотрите DATETIME_FORMAT, TIME_FORMAT и SHORT_DATE_FORMAT.

DATE_INPUT_FORMATS

Значения по умолчанию:

[
    "%Y-%m-%d",  # '2006-10-25'
    "%m/%d/%Y",  # '10/25/2006'
    "%m/%d/%y",  # '10/25/06'
    "%b %d %Y",  # 'Oct 25 2006'
    "%b %d, %Y",  # 'Oct 25, 2006'
    "%d %b %Y",  # '25 Oct 2006'
    "%d %b, %Y",  # '25 Oct, 2006'
    "%B %d %Y",  # 'October 25 2006'
    "%B %d, %Y",  # 'October 25, 2006'
    "%d %B %Y",  # '25 October 2006'
    "%d %B, %Y",  # '25 October, 2006'
]

Список, содержащий форматы даты, которые доступны в поле даты формы. Форматы проверяются в указанном порядке, используется первый подходящий. Заметим что эти строки используют формат datetime Python, а не формат шаблонного тега date.

Формат, определяемый языковым стандартом, имеет более высокий приоритет и будет применяться вместо него.

Смотрите DATETIME_INPUT_FORMATS и TIME_INPUT_FORMATS.

DATETIME_FORMAT

По умолчанию: 'N j, Y, P' (например Feb. 4, 2003, 4 p.m.)

Форматирование по умолчанию, используемое для отображения полей даты и времени в любой части системы. Обратите внимание, что формат, определяемый локалью, имеет более высокий приоритет и вместо него будет применяться. См. допустимые строки формата даты.

Смотрите DATETIME_FORMAT, TIME_FORMAT и SHORT_DATETIME_FORMAT.

DATETIME_INPUT_FORMATS

Значения по умолчанию:

[
    "%Y-%m-%d %H:%M:%S",  # '2006-10-25 14:30:59'
    "%Y-%m-%d %H:%M:%S.%f",  # '2006-10-25 14:30:59.000200'
    "%Y-%m-%d %H:%M",  # '2006-10-25 14:30'
    "%m/%d/%Y %H:%M:%S",  # '10/25/2006 14:30:59'
    "%m/%d/%Y %H:%M:%S.%f",  # '10/25/2006 14:30:59.000200'
    "%m/%d/%Y %H:%M",  # '10/25/2006 14:30'
    "%m/%d/%y %H:%M:%S",  # '10/25/06 14:30:59'
    "%m/%d/%y %H:%M:%S.%f",  # '10/25/06 14:30:59.000200'
    "%m/%d/%y %H:%M",  # '10/25/06 14:30'
]

Список форматов, которые будут приняты при вводе данных в поле даты и времени. Форматы будут опробованы по порядку, используя первый действительный. Обратите внимание, что в этих строках формата используется синтаксис модуля datetime Python <strftime-strptime-behavior>`, а не строки формата из фильтра шаблона date. Форматы только даты не включены, поскольку поля даты и времени будут автоматически пытаться использовать DATE_INPUT_FORMATS в крайнем случае.

Формат, определяемый языковым стандартом, имеет более высокий приоритет и будет применяться вместо него.

Смотрите DATE_INPUT_FORMATS и TIME_INPUT_FORMATS.

DEBUG

По умолчанию: False

Включает/выключает режим отладки.

Никогда не включайте DEBUG на «боевом» сервере.

Одна из особенностей режима отладки – отображение подробной страницы с ошибкой. Если ваше приложение вызывает исключение при DEBUG равном True, Django покажет подробную отладочную информацию включая различные мета-данные об окружении, такие как настройки проекта (из settings.py).

В целях безопасности Django не включает небезопасные настройки, такие как SECRET_KEY. В том числе не отображаются настройки, которые содержат в названии следующее:

  • 'API'

  • 'KEY'

  • 'PASS'

  • 'SECRET'

  • 'SIGNATURE'

  • 'TOKEN'

Заметим, учитывается частичное совпадение. 'PASS' учитывает PASSWORD, также как и 'TOKEN' учитывает TOKENIZED и так далее.

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

Также при включенном DEBUG, Django запоминает каждый выполненный SQL запрос. Это полезно при отладке, но на сервере может занять много памяти.

Также при DEBUG равном False, необходимо правильно указать ALLOWED_HOSTS. Иначе все запросы будут возвращать «Bad Request (400)».

Примечание

По умолчанию файл settings.py, созданный django-admin startproject, содержит DEBUG = True.

DEBUG_PROPAGATE_EXCEPTIONS

По умолчанию: False

Если установлено значение True, обработка исключений Django для функций просмотра (handler500 или представления отладки, если DEBUG имеет значение True) и регистрация 500 ответов (django.request) пропускаются, и исключения распространяются вверх.

Это может быть полезно для некоторых тестовых настроек. Его не следует использовать на работающем сайте, если вы не хотите, чтобы ваш веб-сервер (вместо Django) генерировал ответы «Внутренняя ошибка сервера». В этом случае убедитесь, что ваш сервер не отображает в ответе трассировку стека или другую конфиденциальную информацию.

DECIMAL_SEPARATOR

По умолчанию: '.' (Точка)

Десятичный разделитель, который используется при форматировании десятичных чисел.

Обратите внимание, что формат, определяемый локалью, имеет более высокий приоритет и вместо него будет применяться.

Смотрите NUMBER_GROUPING, THOUSAND_SEPARATOR и USE_THOUSAND_SEPARATOR.

DEFAULT_AUTO_FIELD

По умолчанию: 'django.db.models.AutoField'

Тип поля первичного ключа по умолчанию, используемый для моделей, у которых нет поля с primary_key=True.

Миграция автоматически созданных таблиц

Значение DEFAULT_AUTO_FIELD будет учитываться при создании новых автоматически создаваемых таблиц для отношений «многие ко многим».

К сожалению, первичные ключи существующих автоматически созданных таблиц в настоящее время не могут быть обновлены с помощью платформы миграции.

Это означает, что если вы измените значение DEFAULT_AUTO_FIELD, а затем сгенерируете миграцию, первичные ключи связанных моделей будут обновлены, как и внешние ключи из сквозной таблицы, но первичный ключ автоматически созданной сквозной таблицы не будет перенесен.

Чтобы решить эту проблему, вам следует добавить операцию RunSQL к вашим миграциям, чтобы выполнить необходимый шаг ALTER TABLE. Вы можете проверить существующее имя таблицы через sqlmigrate, dbshell или с помощью свойства remote_field.through._meta.db_table поля.

Явно определенные модели уже обрабатываются системой миграции.

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

DEFAULT_CHARSET

По умолчанию: 'utf-8'

Кодировка, которая используется по умолчанию для объектов HttpResponse если MIME-тип не указан явно. Используется вместе с DEFAULT_CONTENT_TYPE при установке заголовка Content-Type.

DEFAULT_EXCEPTION_REPORTER

По умолчанию: 'django.views.debug.ExceptionReporter'

Класс репортера исключений по умолчанию, который будет использоваться, если экземпляру HttpRequest еще не назначен ни один класс. См. настраиваемые отчеты об ошибках.

DEFAULT_EXCEPTION_REPORTER_FILTER

По умолчанию: django.views.debug.SafeExceptionReporterFilter

Класс фильтра отчета об ошибке, который будет использоваться если не установлен другой для объекта HttpRequest. Смотрите Фильтрация отчетов об ошибке.

DEFAULT_FROM_EMAIL

По умолчанию: 'webmaster@localhost'

Адрес электронной почты по умолчанию для автоматической переписки с менеджерами сайта. Этот адрес используется в заголовке From: исходящих электронных писем и может иметь любой формат, допустимый для выбранного протокола отправки электронной почты.

Это не влияет на сообщения об ошибках, отправляемые ADMINS и MANAGERS. См. SERVER_EMAIL для этого.

DEFAULT_INDEX_TABLESPACE

По умолчанию: '' (Пустая строка)

Табличное пространство(пер. tablespace) используемое для индексов полей, которые не указывают явно значение. Используется если база данных поддерживает их (смотрите Табличные пространства).

DEFAULT_TABLESPACE

По умолчанию: '' (Пустая строка)

Табличное пространство(пер. tablespace) используемое для моделей, которые не указывают явно значение. Используется если база данных поддерживает их (смотрите Табличные пространства).

DISALLOWED_USER_AGENTS

По умолчанию: [] (Пустой список)

Список скомпилированных регулярных выражений, которые используются при фильтрации заголовка User-Agent для запрета доступа ко всем страницам сайта. Используйте для блокировки роботов/сканеров. Используется только при включенном CommonMiddleware (смотрите Промежуточный слой (Middleware)).

EMAIL_BACKEND

По умолчанию: 'django.core.mail.backends.smtp.EmailBackend'

Серверная часть, используемая для отправки электронных писем. Список доступных бэкэндов см. в Бэкенды для отправки электронной почты.

EMAIL_FILE_PATH

По умолчанию: Не определена

Каталог, используемый файловым бэкендом для отправки электронных писем.

EMAIL_HOST

По умолчанию: 'localhost'

Имя хоста используемое для отправки электронных писем.

Смотрите EMAIL_PORT.

EMAIL_HOST_PASSWORD

По умолчанию: '' (Пустая строка)

Пароль для подключения к SMTP сервера, который указан в EMAIL_HOST. Эта настройка используется вместе с EMAIL_HOST_USER для авторизации при подключении к SMTP серверу. Если эти настройки пустые, Django будет подключаться без авторизации.

Смотрите EMAIL_HOST_USER.

EMAIL_HOST_USER

По умолчанию: '' (Пустая строка)

Имя пользователя используемое при подключении к SMTP серверу указанному в EMAIL_HOST. Если не указано, Django не будет выполнять авторизацию.

Смотрите EMAIL_HOST_PASSWORD.

EMAIL_PORT

По умолчанию: 25

Порт, используемый при подключении к SMTP серверу указанному в EMAIL_HOST.

EMAIL_SUBJECT_PREFIX

По умолчанию: '[Django] '

Префикс добавляемый к теме электронного письма отправленного функциями django.core.mail.mail_admins или django.core.mail.mail_managers. Возможно, вы захотите добавить пробелы в конце.

EMAIL_USE_LOCALTIME

По умолчанию: False

Отправлять ли SMTP-заголовок «Date» сообщений электронной почты в местном часовом поясе («True») или в формате UTC («False»).

EMAIL_USE_TLS

По умолчанию: False

Указывает использовать ли TLS (защищенное) соединение с SMTP сервером. Используется для явного использования TLS подключения, обычно к 587 порту. Если подключение не работает, используйте неявное TLS подключение указав EMAIL_USE_SSL.

EMAIL_USE_SSL

По умолчанию: False

Указывает использовать ли неявное TLS (защищенное) соединение с SMTP сервером. В документации этот тип TLS подключения обычно называется SSL. По умолчанию использует 465 порт. Если подключение не работает, используйте явно TLS подключение указав EMAIL_USE_TLS.

Обратите внимание, EMAIL_USE_TLS/EMAIL_USE_SSL взаимоисключающие, только одна настройка может быть True.

EMAIL_SSL_CERTFILE

По умолчанию: None

Если EMAIL_USE_SSL или EMAIL_USE_TLS имеет значение True и безопасное соединение с SMTP-сервером требует аутентификации клиента, используйте этот параметр, чтобы указать путь к файлу цепочки сертификатов в формате PEM, который необходимо использовать вместе с EMAIL_SSL_KEYFILE.

EMAIL_SSL_CERTFILE не следует использовать с самозаверяющим сертификатом сервера или сертификатом частного центра сертификации (CA). В таких случаях сертификат сервера (или корневой сертификат частного центра сертификации) должен быть установлен в пакет центра сертификации системы. Это можно сделать, следуя инструкциям для конкретной платформы по установке корневого сертификата CA или используя переменные среды OpenSSL SSL_CERT_FILE или SSL_CERT_DIR для указания пользовательского пакета сертификатов (если изменение системного пакета невозможно или желательно).

Для более сложных сценариев SMTP EmailBackend может быть подклассом для добавления корневых сертификатов в его ssl_context с помощью python:ssl.SSLContext.load_verify_locations().

EMAIL_SSL_KEYFILE

По умолчанию: None

Если EMAIL_USE_SSL или EMAIL_USE_TLS имеет значение True, вы можете дополнительно указать путь к файлу закрытого ключа в формате PEM для аутентификации клиента SSL-соединения вместе с EMAIL_SSL_CERTFILE.

Обратите внимание, что установка EMAIL_SSL_CERTFILE и EMAIL_SSL_KEYFILE не приводит к проверке сертификата. Они передаются базовому SSL-соединению. Пожалуйста, обратитесь к документации функции Python python:ssl.SSLContext.wrap_socket() для получения подробной информации о том, как обрабатываются файл цепочки сертификатов и файл закрытого ключа.

EMAIL_TIMEOUT

По умолчанию: None

Указывает таймаут в секундах для блокирующих операций, таких как попытка подключения.

FILE_UPLOAD_HANDLERS

Значения по умолчанию:

[
    "django.core.files.uploadhandler.MemoryFileUploadHandler",
    "django.core.files.uploadhandler.TemporaryFileUploadHandler",
]

Список обработчиков загрузки файлов. Можно изменить или полностью переопределить процесс загрузки в Django.

Подробности смотрите Управление файлами.

FILE_UPLOAD_MAX_MEMORY_SIZE

По умолчанию: 2621440 (то есть 2.5 MB).

Максимальный размер (в байтах) загруженного файла, который будет храниться в памяти, а не сохраняться в файловой системе. Подробности смотрите Управление файлами.

Смотрите FILE_UPLOAD_MAX_MEMORY_SIZE

FILE_UPLOAD_DIRECTORY_PERMISSIONS

По умолчанию: None

Права доступа в цифровом виде для каталогов, которые будут созданы при сохранении загруженных файлов.

Также используется для каталогов, которые будут созданы при сборке статических файлов командой collectstatic. Подробности смотрите в collectstatic.

Используется аналогично настройке FILE_UPLOAD_PERMISSIONS.

FILE_UPLOAD_PERMISSIONS

По умолчанию: 0

Права доступа в цифровом виде (то есть 0644) которые назначаются новым загруженным файлам. Подробную информацию смотрите в описании функции os.chmod().

Если «Нет», вы получите поведение, зависящее от операционной системы. На большинстве платформ временные файлы будут иметь режим «0o600», а файлы, сохраненные в памяти, будут сохраняться с использованием стандартной маски системы.

Для безопасности эти права не применяются для временных файлов, которые сохраняются в FILE_UPLOAD_TEMP_DIR.

Также используется для файлов, которые будут созданы при сборке статических файлов командой collectstatic. Подробности смотрите в collectstatic.

Предупреждение

Всегда добавляйте к режиму префикс 0o .

Если вы не знакомы с режимами файлов, обратите внимание, что префикс 0o очень важен: он указывает восьмеричное число, которое указывает способ указания режимов. Если вы попытаетесь использовать 644, вы получите совершенно неправильное поведение.

FILE_UPLOAD_TEMP_DIR

По умолчанию: None

Каталог, используемый для загрузки временных файлов (обычно файлы больше FILE_UPLOAD_MAX_MEMORY_SIZE). Если None, Django будет использовать стандартный каталог временных файлов используемой операционной системы. Например, для *nix-систем это /tmp на *nix-системах.

Подробности смотрите Управление файлами.

FIRST_DAY_OF_WEEK

По умолчанию: 0 (Воскресение)

Число, указывающее первый день недели. Используется при отображении календаря. Это значение используется если не найдено значение используемой локали.

Значение должно быть целым числом от 0 до 6, где 0 означает Воскресение, 1 означает Понедельник.

FIXTURE_DIRS

По умолчанию: [] (Пустой список)

Список каталогов, в которых осуществляется поиск файлов fixture, в дополнение к каталогу fixtures каждого приложения, в порядке поиска.

Обратите внимание, пути должны быть Unix-стиле, даже для Windows (то есть использовать /).

Смотрите Создание данных с помощью фикстур (fixtures) и Загрузка фикстур.

FORCE_SCRIPT_NAME

По умолчанию: None

Если значение не «Нет», оно будет использоваться как значение переменной среды «SCRIPT_NAME» в любом HTTP-запросе. Этот параметр можно использовать для переопределения предоставленного сервером значения SCRIPT_NAME, которое может быть переписанной версией предпочтительного значения или вообще не предоставляться. Он также используется django.setup() для установки префикса сценария преобразователя URL-адресов вне цикла запрос/ответ (например, в командах управления и автономных сценариях) для генерации правильных URL-адресов, когда указан FORCE_SCRIPT_NAME.

FORM_RENDERER

По умолчанию: 'django.forms.renderers.DjangoTemplates'

Класс, который отображает формы и виджеты форм. Он должен реализовать API низкоуровневого рендеринга. Включенные средства визуализации форм:

FORMS_URLFIELD_ASSUME_HTTPS

New in Django 5.0.

Не рекомендуется, начиная с версии 5.0.

По умолчанию: False

Установите для этого переходного параметра значение «True», чтобы выбрать использование «https» в качестве нового значения по умолчанию для URLField.assume_scheme во время цикла выпуска Django 5.x.

FORMAT_MODULE_PATH

По умолчанию: None

Полный Python путь для импорта Python пакета, который содержит определение форматов для локалей. Если не None, Django попытается найти файл formats.py в каталогах с названием текущей локали и использовать форматы определенные в этом файле.

Предполагается, что имя каталога, содержащего определения формата, будет называться с использованием нотации имя локали, например de, pt_BR, en_US и т. д.

Например, если для параметра FORMAT_MODULE_PATH установлено значение mysite.formats, а текущий язык – en (английский), Django будет ожидать такое дерево каталогов:

mysite/
    formats/
        __init__.py
        en/
            __init__.py
            formats.py

Вы также можете указать список путей Python:

FORMAT_MODULE_PATH = [
    "mysite.formats",
    "some_app.formats",
]

Когда Django ищет определенный формат, проверяются все указанные путя Python пока не будет найдет модуль, который содержит нужный формат.

Доступные настройки проекта

IGNORABLE_404_URLS

По умолчанию: [] (Пустой список)

Список скомпилированных регулярных выражений, которые соответствуют URL-ам, для которых не должны отсылаться письма о 404 ошибках (смотрите Как управлять сообщениями об ошибках). Регулярное выражение проверяет полный адрес запроса с учетом всех GET аргументов. Вы можете использовать эту настройку если ваш проект не содержит обычно запрашиваемые файлы, такие как favicon.ico или robots.txt, или если кто-то натравил на ваш сайт скрипт(пер. hammered by script kiddies).

Используется при включенном BrokenLinkEmailsMiddleware (смотрите Промежуточный слой (Middleware)).

INSTALLED_APPS

По умолчанию: [] (Пустой список)

Список строк, который указывают не все приложения Django, используемые в проекте. Каждая строка должна быть полным Python путем к:

  • классу настройки приложения(рекомендуется), или

  • пакету с приложением.

Больше о настройке приложений.

Используйте реестр приложений

Ваш код не должен использовать INSTALLED_APPS. Вместо этого используйте django.apps.apps.

Названия приложения и метки(labels) должны быть уникальны в INSTALLED_APPS

Названия приложений — Python путь к пакету приложения — должны быть уникальны. Нельзя подключить одно приложение дважды, разве что продублировав код с другим названием.

Короткие названия приложения — по умолчанию последняя часть названия приложения — должны быть так же уникальны. Например, можно использовать вместе django.contrib.auth и myproject.auth. Однако, необходимо указать label.

Эти правила распространяются на все приложения в INSTALLED_APPS, как на классы настройки приложений, так и на пакеты приложений.

Если несколько приложений содержат разные версии одних и тех же ресурсов (шаблоны, статические файлы, команды, файлы перевода), будут использоваться ресурсы из приложения, которое указано выше в INSTALLED_APPS.

INTERNAL_IPS

По умолчанию: [] (Пустой список)

Список IP адресов, в виде строк, которые:

  • Позволяет контекстному процессору debug() добавить некоторые переменные в контекст шаблона.

  • Позволяет использовать admindocs bookmarklets, даже без авторизации как пользователь-администратор.

  • Помечаются как «внутренние» (вместо «EXTERNAL») в письмах, отправленных через AdminEmailHandler.

LANGUAGE_CODE

По умолчанию: 'en-us'

Код используемого в проекте языка. Должен соответствовать формату сокращений названий языков. Например, U.S. English обозначается как "en-us". Смотрите список кодов языков и Интернационализация и локализация.

Он служит трем целям:

  • Если мидлвар для определения локали отключен, она указывает какой язык использовать для всех пользователей.

  • При включенном мидлваре, указывает язык по умолчанию, если язык пользователя не может быть определен или не доступен в проекте. Также предоставляет перевод по умолчанию, если перевод текста на язык пользователя не был найден.

  • Если локализация явно отключена с помощью фильтра unlocalize или тега {% localize off %}, вместо этого будут применяться резервные форматы локализации. Подробности см. в разделе «Управление локализацией в шаблонах <topic-l10n-templates>».

Подробности смотрите в Как Django определяет языковую настройку.

LANGUAGES

По умолчанию: список всех доступных языков. Этот список постоянно растет, поэтому мы не приводим здесь значение. Текущий список вы можете посмотреть в файле django/conf/global_settings.py (или посмотреть исходный код онлайн).

Список представляет собой список из двух кортежей в формате (код языка, название языка), например, ('ja', 'Japanese'). Здесь указывается, какие языки доступны для выбора языка. См. Интернационализация и локализация.

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

Если вы меняете LANGUAGES, можете определить названия языка как переводимую строку, используя функцию ugettext_lazy().

Вот пример настроек:

from django.utils.translation import gettext_lazy as _

LANGUAGES = [
    ("de", _("German")),
    ("en", _("English")),
]

LANGUAGES

По умолчанию: список всех доступных языков. Этот список постоянно растет, поэтому мы не приводим здесь значение. Текущий список вы можете посмотреть в файле django/conf/global_settings.py (или посмотреть исходный код онлайн).

Список содержит коды языков для языков, которые пишутся справа налево.

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

LOCALE_PATHS

По умолчанию: [] (Пустой список)

Список каталогов, в которых Django ищет файлы перевода. Смотрите Как Django находит переводы.

Например:

LOCALE_PATHS = [
    "/home/www/project/common_files/locale",
    "/var/local/translations/locale",
]

Django в каждом каталоге ищет подкаталог <locale_code>/LC_MESSAGES с файлами перевода.

LOGGING

По умолчанию: Словарь конфигурации логгирования.

Структура данных, содержащая информацию о конфигурации. Если оно не пусто, содержимое этой структуры данных будет передано в качестве аргумента методу конфигурации, описанному в LOGGING_CONFIG.

Настройки по умолчанию все HTTP 500 ошибки отправляются в email обработчик при DEBUG равном False. Смотрите также Настройка логгирования.

Стандартные настройки логгирования можно найти в файле django/utils/log.py (или посмотреть онлайн).

LOGGING_CONFIG

По умолчанию: 'logging.config.dictConfig'

Путь для импорта функции, которая используется для настройки логгирования в проекте. Указывает на метод объекта Python dictConfig.

Если LOGGING_CONFIG равно None, настройки логгирования не будет выполняться.

MANAGERS

По умолчанию: [] (Пустой список)

Список по формату аналогичен ADMINS, который определяет кто получает оповещение о «сломанных» ссылках при включенном BrokenLinkEmailsMiddleware.

MEDIA_ROOT

По умолчанию: '' (Пустая строка)

Абсолютный путь к каталогу, в котором хранятся медиа-файлы, используется для работы с файлами.

Например: "/var/www/example.com/media/"

Смотрите MEDIA_URL.

Предупреждение

MEDIA_ROOT и STATIC_ROOT должны отличаться. Когда STATIC_ROOT только добавили, нормальным было указать MEDIA_ROOT на те самые файлы, однако, т.к. это потенциально не безопасно, добавлена проверка этих значений.

MEDIA_URL

По умолчанию: '' (Пустая строка)

URL который указывает на каталог MEDIA_ROOT, используется для работы с файлами. Должен оканчиваться слешом при не пустом значении. Вам необходимо настроить раздачу этих файлов как dev-сервером, так и «боевым».

Если вы хотите использовать {{ MEDIA_URL }} в шаблонах, добавьте 'django.template.context_processors.media' в опцию 'context_processors' настройки TEMPLATES.

Пример: "https://media.example.com/"

Предупреждение

Принимать загруженный контент от непроверенных пользователей – опасно! Подробности смотрите в Контент, загружаемый пользователями.

Предупреждение

MEDIA_URL и STATIC_URL должны отличаться. Подробности смотрите в описании MEDIA_ROOT.

Примечание

Если MEDIA_URL является относительным путем, то перед ним будет стоять предоставленное сервером значение SCRIPT_NAME (или /, если оно не установлено). Это упрощает обслуживание приложения Django в подпути без добавления дополнительной конфигурации в настройки.

MIDDLEWARE

По умолчанию: None

Список, который состоит из путей для импорта используемых функциональных слоев(пер. middleware). Смотрите Промежуточный слой (Middleware).

MIGRATION_MODULES

По умолчанию: {} (Пустой словарь)

Словарь, который указывает где искать миграции для приложений.По умолчанию ничего не содержит и миграцию ищутся в пакете migrations приложения.

Например:

{"blog": "blog.db_migrations"}

В этом примере миграции для приложения blog содержатся в пакете blog.db_migrations.

Если вы укажите аргумент app_label, makemigrations создаст этот пакет, если он не существует.

Когда вы указываете значение None в качестве значения для приложения, Django будет рассматривать это приложение как приложение без миграции, независимо от существующего подмодуля миграции. Это можно использовать, например, в файле настроек теста, чтобы пропустить миграции во время тестирования (таблицы все равно будут созданы для моделей приложений). Чтобы отключить миграцию для всех приложений во время тестов, вы можете вместо этого установить для параметра MIGRATE значение False. Если в общих настройках проекта используется MIGRATION_MODULES, не забудьте использовать параметр migrate --run-syncdb, если вы хотите создавать таблицы для приложения.

MONTH_DAY_FORMAT

По умолчанию: 'F j'

Формат по умолчанию для полей даты при отображении значении в интерфейсе администратора Django и, возможно, в других частях системы в случае, если отображается только месяц и день.

Например, если отфильтровать страницу списка объектов в интерфейсе администратора по дате, название страницы будет содержать месяц и день. Различные локали содержат различные форматы даты. Например, для U.S. English будет отображаться «January 1,» для Spanish - «1 Enero.»

Обратите внимание, что соответствующий формат, определяемый локалью, имеет более высокий приоритет и вместо него будет применяться.

Смотрите доступные форматы. Также смотрите DATE_FORMAT, DATETIME_FORMAT, TIME_FORMAT и YEAR_MONTH_FORMAT.

NUMBER_GROUPING

По умолчанию: 0

Количество цифр для группирования в целочисленной части числа.

Используется для разделителя тысяч при отображении чисел. При 0, цифры не будут группироваться. Если значение больше 0, THOUSAND_SEPARATOR будет использоваться как разделитель.

В некоторых локалях используется неравномерная группировка цифр, например. 10,00,00,000 в en_IN. В этом случае вы можете предоставить последовательность с количеством применяемых размеров групп цифр. Первое число определяет размер группы, предшествующей десятичному разделителю, а каждое следующее число определяет размер предыдущих групп. Если последовательность заканчивается -1, дальнейшая группировка не выполняется. Если последовательность заканчивается цифрой «0», для оставшейся части числа используется последний размер группы.

Пример кортежа en_IN:

NUMBER_GROUPING = (3, 2, 0)

Обратите внимание, что формат, определяемый локалью, имеет более высокий приоритет и вместо него будет применяться.

Смотрите DECIMAL_SEPARATOR, THOUSAND_SEPARATOR и USE_THOUSAND_SEPARATOR.

PREPEND_WWW

По умолчанию: False

Указывает добавлять ли поддомен «www.» к URL-у, если он не содержит его. Работает только при использовании CommonMiddleware (смотрите Промежуточный слой (Middleware)). Смотрите APPEND_SLASH.

ROOT_URLCONF

По умолчанию: Не определена

Путь для импорта Python-модуля с главной конфигурацией URL-ов. Например: "mydjangoapps.urls". Может быть переопределена для конкретного запроса изменением атрибута urlconf объекта HttpRequest. Подробности смотрите в Как Django обрабатывает запрос.

SECRET_KEY

По умолчанию: '' (Пустая строка)

Секретный ключ. Используется для криптографической подписи, должен быть случайным и сложным для подбора.

django-admin startproject автоматом создает случайный SECRET_KEY для нового проекта.

Использование ключа не должно предполагать, что это текст или байты. Каждое использование должно проходить через force_str() или force_bytes() для преобразования его в желаемый тип.

Django не запустится, если SECRET_KEY не указан.

Предупреждение

Храните это значение в секрете.

Если SECRET_KEY станет кому-то известен, это позволит обойти различную защиту в Django.

Секретный ключ используется для:

Когда секретный ключ больше не установлен как SECRET_KEY или не содержится в SECRET_KEY_FALLBACKS, все вышеперечисленное становится недействительным. При смене секретного ключа вам следует временно переместить старый ключ в SECRET_KEY_FALLBACKS. Секретные ключи не используются для паролей пользователей, и ротация ключей на них не повлияет.

Примечание

По умолчанию файл settings.py, созданный django-admin startproject, создает уникальный SECRET_KEY.

SECRET_KEY_FALLBACKS

По умолчанию: []

Список резервных секретных ключей для конкретной установки Django. Они используются для возможности вращения SECRET_KEY.

Чтобы поменять секретные ключи, установите новый SECRET_KEY и переместите предыдущее значение в начало SECRET_KEY_FALLBACKS. Затем удалите старые значения из конца SECRET_KEY_FALLBACKS, когда вы будете готовы прекратить действие сеансов, токенов сброса пароля и т. д., которые их используют.

Примечание

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

Таким образом, резервные значения должны быть удалены по истечении соответствующего периода, чтобы обеспечить возможность ротации ключей.

При использовании значений секретного ключа не следует предполагать, что они представляют собой текст или байты. Каждое использование должно проходить через force_str() или force_bytes() для преобразования его в желаемый тип.

SECURE_CONTENT_TYPE_NOSNIFF

По умолчанию: True

При True SecurityMiddleware добавит заголовок X-Content-Type-Options: nosniff для всех ответов, которые еще не содержат его.

SECURE_CROSS_ORIGIN_OPENER_POLICY

По умолчанию: 'того же происхождения'

Если не установлено значение None, SecurityMiddleware устанавливает заголовок Политика открытия перекрестного происхождения во всех ответах, в которых он еще не имеет указанного значения.

SECURE_HSTS_INCLUDE_SUBDOMAINS

По умолчанию: False

При True SecurityMiddleware добавляет тег includeSubDomains в заголовок HTTP Strict Transport Security. Не имеет эффекта, если не указать в SECURE_HSTS_SECONDS значение отличное от ноля.

Предупреждение

Неправильная установка этих настроек может необратимо (при определенном значении SECURE_HSTS_SECONDS) сломать ваш сайт. Для начала ознакомьтесь с HTTP Strict Transport Security.

SECURE_HSTS_PRELOAD

По умолчанию: False

При True SecurityMiddleware добавляет тег includeSubDomains в заголовок HTTP Strict Transport Security. Не имеет эффекта, если не указать в SECURE_HSTS_SECONDS значение отличное от ноля.

SECURE_HSTS_SECONDS

По умолчанию: 0

Если указать не ноль, SecurityMiddleware добавит заголовок HTTP Strict Transport Security для всех ответов, которые еще не содержат его.

Предупреждение

Неправильная установка этих настроек может необратимо (в течение некоторого времени) сломать ваш сайт. Для начала ознакомьтесь с HTTP Strict Transport Security.

SECURE_PROXY_SSL_HEADER

По умолчанию: None

Кортеж, представляющий комбинацию заголовка и значения HTTP, которая означает, что запрос является безопасным. Это управляет поведением метода is_secure() объекта запроса.

Здесь требуются пояснения. По умолчанию, is_secure() определяет безопасен ли запрошенный URL(по наличию «https://»). Это важно для CSRF защиты, вы также можете использовать эту настройку.

Если приложение Django находится за прокси, который использует не HTTPS соединение к проекту, будут утеряны данные о том, что запрос зашифрованный. В этом случае is_secure() всегда будет возвращать False – даже для запросов, сделанных через HTTPS.

В таком случае вам необходимо настроить прокси таким образом, чтобы добавлялись специальные HTTP заголовки для защищенных запросов, которые вы укажете в SECURE_PROXY_SSL_HEADER чтобы Django мог определить является запрос защищенным.

Необходимо указать кортеж из двух элементов – название заголовка и значение. Например:

SECURE_PROXY_SSL_HEADER = ("HTTP_X_FORWARDED_PROTO", "https")

Это говорит Django о том, что нужно доверять заголовку X-Forwarded-Proto, который поступает от нашего прокси-сервера, и что запрос гарантированно будет безопасным (т. е. изначально он поступил через HTTPS), когда:

  • значение заголовка — https, или

  • его начальное, крайнее левое значение — «https» в случае списка протоколов, разделенных запятыми (например, «https,http,http»).

Вам следует только устанавливать этот параметр, если вы контролируете свой прокси-сервер или имеете какую-либо другую гарантию того, что он устанавливает/удаляет этот заголовок соответствующим образом.

Название заголовка должно быть в формате, используемом request.META – в верхнем регистре и начинаться с HTTP_. (Помните, Django автоматически добавляет 'HTTP_' в начале к названию x-заголовка перед добавлением его в request.META.)

Предупреждение

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

Убедитесь что ВСЕ следующие условия верны, перед тем как использовать эту настройку(предполагая, что используется значение из примера выше):

  • Проект находится за прокси-сервером.

  • Ваш прокси-сервер удаляет заголовок X-Forwarded-Proto из всех входящих запросов, даже если он содержит список протоколов, разделенных запятыми. Другими словами, если конечные пользователи включают этот заголовок в свои запросы, прокси-сервер его отбросит.

  • Прокси устанавливает заголовок „X-Forwarded-Proto“ и передает Django, но только для запросов через HTTPS.

Если одно из условий не соблюдено, установите значение настройки в None и найдите другой способ определить, используется ли HTTPS, возможно через функциональный слой(пер. middleware).

SECURE_REDIRECT_EXEMPT

По умолчанию: [] (Пустой список)

Если URL удовлетворяет регулярному выражению из этого списка, запрос не будет перенаправлен на HTTPS. Если SECURE_SSL_REDIRECT равна False, эта настройка не имеет эффекта.

SECURE_REDIRECT_EXEMPT

По умолчанию: 'того же происхождения'

При True SecurityMiddleware добавит заголовок x-xss-protection для всех ответов, которые еще не содержат его.

SECURE_SSL_HOST

По умолчанию: None

Если указать строку (например secure.example.com), все SSL будут отправлены на указанный домен, а не запрошенный домен (например www.example.com). Если SECURE_SSL_REDIRECT равна False, эта настройка не имеет эффекта.

SECURE_SSL_REDIRECT

По умолчанию: False

При True SecurityMiddleware перенаправляет все не-HTTPS запросы на HTTPS (кроме тех URL-ов, которые удовлетворяют регулярному выржению из SECURE_REDIRECT_EXEMPT).

Примечание

Если при указании True происходит бесконечное перенаправление при запросе, возможно ваш сайт находится за прокси и не может определить защищен запрос или нет. Скорее всего прокси устанавливает заголовок, который указывает защищен ли запрос. Вы можете указать этот заголовок в настройке SECURE_PROXY_SSL_HEADER, что исправит проблему.

SERIALIZATION_MODULES

По умолчанию: Не определена

Словарь, указывающий модули, реализующие различные форматы сериализации данных(пер. serializer) (строка с путем для импорта). Например, чтобы определить сериализатор для YAML формата, используйте:

SERIALIZATION_MODULES = {"yaml": "path.to.yaml_serializer"}

SERVER_EMAIL

По умолчанию: 'root@localhost'

Адрес электронной почты, с которого приходят сообщения об ошибках, например те, которые отправляются ADMINS и MANAGERS. Этот адрес используется в заголовке From: и может иметь любой формат, допустимый для выбранного протокола отправки электронной почты.

Почему мои письма отправляются с разных адресов?

Этот адрес используется только для писем с ошибками. Этот адрес не не используется для отправки обычных писем через send_mail(). Для них используется значение DEFAULT_FROM_EMAIL.

SHORT_DATE_FORMAT

По умолчанию: 'm/d/Y' (например 12/31/2003)

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

Смотрите DATE_FORMAT и SHORT_DATETIME_FORMAT.

SHORT_DATETIME_FORMAT

По умолчанию: 'm/d/Y P' (например 12/31/2003 4 p.m.)

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

Смотрите также DATE_FORMAT и SHORT_DATE_FORMAT.

SIGNING_BACKEND

По умолчанию: 'django.core.signing.TimestampSigner'

Бэкенд, используемый для подписанных кук и других данных.

Смотрите Криптографическая подпись.

SILENCED_SYSTEM_CHECKS

По умолчанию: [] (Пустой список)

Список кодов сообщений, генерируемые приложением проверки проекта (например, ["models.W001"]), которые вы хотите проигнорировать. Игнорируемые приложения не будут выводится в консоль.

Смотрите Система проверки системы.

ХРАНЕНИЯ

Значения по умолчанию:

{
    "default": {
        "BACKEND": "django.core.files.storage.FileSystemStorage",
    },
    "staticfiles": {
        "BACKEND": "django.contrib.staticfiles.storage.StaticFilesStorage",
    },
}

Словарь, содержащий настройки для всех хранилищ, которые будут использоваться с Django. Это вложенный словарь, содержимое которого сопоставляет псевдоним хранилища со словарем, содержащим параметры для отдельного хранилища.

Хранилища могут иметь любой псевдоним по вашему выбору. Однако есть два псевдонима, имеющие особое значение:

Ниже приведен пример фрагмента файла settings.py, определяющего пользовательское файловое хранилище под названием example:

STORAGES = {
    # ...
    "example": {
        "BACKEND": "django.core.files.storage.FileSystemStorage",
        "OPTIONS": {
            "location": "/example",
            "base_url": "/example/",
        },
    },
}

OPTIONS передаются BACKEND при инициализации в **kwargs.

Готовый к использованию экземпляр серверной части хранилища можно получить из django.core.files.storage.storages. Используйте ключ, соответствующий определению серверной части в STORAGES.

Объединено ли мое значение со значением по умолчанию?

Определение этого параметра переопределяет значение по умолчанию и не объединяется с ним.

TEMPLATES

По умолчанию: [] (Пустой список)

Список настроек для шаблонизаторов, которые используются Django. Каждый элемент – это словарь с параметрами настройки шаблонизатора.

Вот небольшой пример как указать Django загружать шаблоны из каталогов templates, которые находятся в установленных приложениях:

TEMPLATES = [
    {
        "BACKEND": "django.template.backends.django.DjangoTemplates",
        "APP_DIRS": True,
    },
]

Следующие опции доступны для всех бэкендов.

BACKEND

По умолчанию: Не определена

Бэкенд шаблонизатора, который используется. Django предоставляет следующие бэкенды:

  • 'django.template.backends.django.DjangoTemplates'

  • 'django.template.backends.jinja2.Jinja2'

Вы можете использовать сторонние бэкэнды указав в BACKEND путь для импорта (например, mypackage.whatever.Backend).

NAME

По умолчанию: смотрите ниже

Название для текущей конфигурации шаблонизатора. Позволяет явно указывать бэкенд для рендеринга шаблона. Должны быть уникальными.

По умолчанию настройка равна названию модуля с классом бэкенда, то есть предпоследний элемент BACKEND. Например для 'mypackage.whatever.Backend' название будет 'whatever'.

DIRS

По умолчанию: [] (Пустой список)

Каталоги, в которых бэкенд должен искать шаблоны в порядке приоритета.

APP_DIRS

По умолчанию: False

Должен ли шаблонизатор искать файлы шаблонов в приложениях.

Примечание

По умолчанию файл settings.py, созданный django-admin startproject, содержит APP_DIRS: True.

OPTIONS

По умолчанию: {} (Пустой словарь)

Дополнительные параметры, которые передаются в бэкенд шаблонизатора. Доступные параметры зависят от бэкенда. Смотрите описание DjangoTemplates и Jinja2.

TEST_RUNNER

По умолчанию: 'django.test.runner.DiscoverRunner'

Название класса, используемого для запуска тестирования. Смотрите Использование различных фреймворков тестирования.

TEST_NON_SERIALIZED_APPS

По умолчанию: [] (Пустой список)

Для восстановления состояния базы данных между тестами при использовании TransactionTestCase и бекендов без поддержки транзакций, Django сериализирует содержимое всех приложений с миграциями перед запуском тестов, чтобы потом восстановить состояние перед новым тестом.

Это замедляет запуск тестов. Если у вас есть приложения, которые не требуют такого поведения, вы можете добавить их полное название в эту настройку (например, 'django.contrib.contenttypes'), чтобы исключить из процесса сериализации.

THOUSAND_SEPARATOR

По умолчанию: ',' (Comma)

Тысячный разделитель, используемый при форматировании чисел. Используется только при USE_THOUSAND_SEPARATOR равном True, и если NUMBER_GROUPING больше чем 0.

Обратите внимание, что формат, определяемый локалью, имеет более высокий приоритет и вместо него будет применяться.

Смотрите NUMBER_GROUPING, DECIMAL_SEPARATOR и USE_THOUSAND_SEPARATOR.

TIME_FORMAT

По умолчанию: 'P' (например, 4 p.m.)

Форматирование по умолчанию, используемое для отображения полей времени в любой части системы. Обратите внимание, что формат, определяемый локалью, имеет более высокий приоритет и вместо него будет применяться. См. допустимые строки формата даты.

Смотрите DATE_FORMAT и DATETIME_FORMAT.

TIME_INPUT_FORMATS

Значения по умолчанию:

[
    "%H:%M:%S",  # '14:30:59'
    "%H:%M:%S.%f",  # '14:30:59.000200'
    "%H:%M",  # '14:30'
]

Список, содержащий форматы времени, которые будут приниматься при вводе значения в поле времени. Форматы будут проверяться по порядку, будет использован первый подходящий. Заметим, что используется синтаксис модуля Python datetime_, не формат строки для шаблонного тега date.

Формат, определяемый языковым стандартом, имеет более высокий приоритет и будет применяться вместо него.

Смотрите DATE_INPUT_FORMATS и DATETIME_INPUT_FORMATS.

TIME_ZONE

По умолчанию: 'America/Chicago'

Часовой пояс, который будет использоваться в проекте, или None. Смотрите список часовых поясов.

Примечание

При первом релизе TIME_ZONE по умолчанию была 'America/Chicago', глобальные настройки (которые используется, если settings.py не содержит настройки) содержат значение 'America/Chicago' для обратной совместимости. Шаблон нового проекта содержит значение 'UTC'.

Заметим, что указанный часовой пояс не обязан совпадать с часовым поясом сервера. Например, один сервер может обслуживать несколько Django-проектов, каждый может использовать свой часовой пояс.

Если USE_TZ равна False, Django будет использовать указанный часовой пояс при сохранении времени. При USE_TZ равной True, указанный часовой пояс будет использоваться по умолчанию при отображении даты в шаблоне и при интерпретации введенных через форму значений.

Django устанавливает переменной os.environ['TZ'] значение, указанное в настройке TIME_ZONE. Таким образом все ваши представления и модели будут использовать один и тот же часовой пояс. Однако, Django не установит значение переменной окружения TZ при следующих обстоятельствах:

Примечание

Django не может обеспечить надежное использование различных временных зон для Windows. При использовании Windows TIME_ZONE должна быть равна системному часовому поясу.

USE_I18N

По умолчанию: True

Указывает, используется ли механизм перевода Django. Позволяет легко отключить его для повышения производительности. При False, Django выполнит небольшую оптимизацию чтобы не загружать механизм перевода.

См. также LANGUAGE_CODE и USE_TZ.

Примечание

По умолчанию файл settings.py, созданный django-admin startproject, содержит USE_I18N = True.

USE_THOUSAND_SEPARATOR

По умолчанию: False

Логическое значение, указывающее, следует ли отображать числа с использованием разделителя тысяч. Если установлено значение True, Django будет форматировать числа, используя настройки NUMBER_GROUPING и THOUSAND_SEPARATOR. Последние два параметра также могут определяться языковым стандартом, который имеет приоритет.

Смотрите DECIMAL_SEPARATOR, NUMBER_GROUPING и THOUSAND_SEPARATOR.

USE_TZ

По умолчанию: True

Логическое значение, указывающее, будет ли datetime учитывать часовой пояс по умолчанию или нет. Если для этого параметра установлено значение «True», Django будет использовать внутренние даты и время с учетом часового пояса.

Когда USE_TZ имеет значение False, Django будет использовать простые даты и время по местному времени, за исключением случаев анализа строк в формате ISO 8601, где информация о часовом поясе всегда будет сохраняться, если она присутствует.

См. также TIME_ZONE и USE_I18N.

Changed in Django 5.0:

В более старых версиях значением по умолчанию является «False».

USE_X_FORWARDED_HOST

По умолчанию: False

Указывает, использовать ли заголовок X-Forwarded-Host как более приоритетный чем Host. Включать только при использовании прокси, который устанавливает этот заголовок.

Этот параметр имеет приоритет над USE_X_FORWARDED_PORT. Согласно RFC 7239 Section 5.3, заголовок X-Forwarded-Host может включать номер порта, и в этом случае вам не следует использовать USE_X_FORWARDED_PORT.

USE_X_FORWARDED_PORT

По умолчанию: False

Булево, которое указывает, использовать ли заголовок X-Forwarded-Port как более приоритетный чем значение SERVER_PORT из META. Включать только при использовании прокси, который устанавливает этот заголовок.

USE_X_FORWARDED_HOST

WSGI_APPLICATION

По умолчанию: None

Полный Python путь к объекту WSGI приложения, которое будет использовать встроенный сервер Django (например runserver). Команда django-admin startproject создаст простой wsgi.py файл с функцией application, и установит значение этой настройки на этот объект application.

Если не указана, будет использовать результат выполнения django.core.wsgi.get_wsgi_application(). В этом случае поведение runserver будет аналогичным предыдущим версиям Django.

YEAR_MONTH_FORMAT

По умолчанию: 'F Y'

Формат по умолчанию для полей даты при отображении значении в интерфейсе администратора Django и, возможно, в других частях системы в случае, если отображается только год и месяц.

Например, если отфильтровать страницу списка объектов в интерфейсе администратора по месяцу, название страницы будет содержать год и месяц. Различные локали содержат различные форматы даты. Например, для U.S. English будет отображаться “January 2006”, в то время как для другой локали это может быть - “2006/January”.

Обратите внимание, что соответствующий формат, определяемый локалью, имеет более высокий приоритет и вместо него будет применяться.

Смотрите доступные форматы. Также смотрите DATE_FORMAT, DATETIME_FORMAT, TIME_FORMAT и MONTH_DAY_FORMAT.

X_FRAME_OPTIONS

По умолчанию: 'F Y'

Значение по умолчанию для заголовка X-Frame-Options используемого XFrameOptionsMiddleware. Смотрите раздел о clickjacking защите.

Auth

Настройки для django.contrib.auth.

AUTHENTICATION_BACKENDS

По умолчанию: ['django.contrib.auth.backends.ModelBackend']

Список, который содержит классы бэкенда авторизации (строки с путем для импорта), которые используются при аутентификации пользователя. Смотрите раздел о бэкендах аутентификации.

AUTH_USER_MODEL

По умолчанию: 'auth.User'

Модель пользователя. Смотрите Заменяем стандартную модель User.

Предупреждение

Вы не можете изменить эту настройку в процессе разработки проекта (то есть после создания и миграции моделей, которые ссылаются на указанную модель) без конкретного геморроя. Предполагается, что эта настройка будет добавлена при создании проекта, и модель, на которую она указывает, будет доступна в первой миграции приложения. Смотрите Заменяем стандартную модель User.

LOGIN_REDIRECT_URL

По умолчанию: '/accounts/profile/'

URL куда перенаправляется пользователь поле авторизации пользователя в представлении contrib.auth.login, если не передан параметр next.

LOGIN_URL

По умолчанию: '/accounts/login/'

URL-адрес или именованный шаблон URL-адреса <naming-url-patterns>`, где запросы перенаправляются для входа в систему при использовании декоратора login_required(), LoginRequiredMixin, AccessMixin или когда установлен LoginRequiredMiddleware.

LOGOUT_REDIRECT_URL

По умолчанию: None

URL куда перенаправляется пользователь поле авторизации пользователя в представлении contrib.auth.login, если не передан параметр next.

Если «Нет», перенаправление выполняться не будет, и будет отображено представление выхода из системы.

PASSWORD_RESET_TIMEOUT

По умолчанию: 259200 (3 дня, в секундах).

Количество секунд, в течение которых действительна ссылка для сброса пароля.

Токены password_reset().

Примечание

Уменьшение значения этого тайм-аута не влияет на возможность злоумышленника подобрать токен сброса пароля. Токены спроектированы таким образом, чтобы защитить их от грубого перебора без какого-либо тайм-аута.

Этот тайм-аут существует для защиты от некоторых маловероятных сценариев атак, например, от получения кем-либо доступа к архивам электронной почты, которые могут содержать старые, неиспользуемые токены сброса пароля.

PASSWORD_HASHERS

Смотрите Как Django хранит пароли.

Значения по умолчанию:

[
    "django.contrib.auth.hashers.PBKDF2PasswordHasher",
    "django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher",
    "django.contrib.auth.hashers.Argon2PasswordHasher",
    "django.contrib.auth.hashers.BCryptSHA256PasswordHasher",
    "django.contrib.auth.hashers.ScryptPasswordHasher",
]

AUTH_PASSWORD_VALIDATORS

По умолчанию: [] (Пустой список)

Список валидаторов, которые проверяют надежность пароля пользователя. Подробности смотрите в Обновление паролей. По умолчанию проверка не используется и принимаются все пароли.

Messages

Настройки для django.contrib.messages.

MESSAGE_LEVEL

По умолчанию: messages.INFO

Определяет минимальный уровень сообщений, которые будут сохраняется фреймверком сообщений. Смотрите описание уровней сообщений.

Как избежать циклического импорта

If you override MESSAGE_LEVEL in your settings file and rely on any of the built-in constants, you must import the constants module directly to avoid the potential for circular imports, e.g.:

from django.contrib.messages import constants as message_constants

MESSAGE_LEVEL = message_constants.DEBUG

При желании, вы можете указать числовые значения для констант непосредственно в соответствии со значениями в приведенной выше таблице констант.

MESSAGE_STORAGE

По умолчанию: 'django.contrib.messages.storage.fallback.FallbackStorage'

Указывает где Django хранит сообщения. Возможные значения:

  • 'django.contrib.messages.storage.fallback.FallbackStorage'

  • 'django.contrib.messages.storage.session.SessionStorage'

  • 'django.contrib.messages.storage.cookie.CookieStorage'

Смотрите бэкенды для хранения сообщейний.

Бекенды использующие куки – CookieStorage и FallbackStorage – используют значения SESSION_COOKIE_DOMAIN, SESSION_COOKIE_SECURE и SESSION_COOKIE_HTTPONLY при добавлении кук.

MESSAGE_TAGS

Значения по умолчанию:

{
    messages.DEBUG: "debug",
    messages.INFO: "info",
    messages.SUCCESS: "success",
    messages.WARNING: "warning",
    messages.ERROR: "error",
}

Словарь определяющий соответствие уровня сообщения и тега, которые используются при генерации CSS классов. Указанные значения дополняют значения по умолчанию. То есть вам нужно указать только те, которые вы хотите переопределить. Смотреть Отображение сообщений.

Как избежать циклического импорта

Если вы переопределили MESSAGE_TAGS в настройках и используете встроенные значения, вам необходимо импортировать модуль constants, чтобы избежать циклического импорта, например:

from django.contrib.messages import constants as message_constants

MESSAGE_TAGS = {message_constants.INFO: ""}

При желании, вы можете указать числовые значения для констант непосредственно в соответствии со значениями в приведенной выше таблице констант.

Сессия

Настройки для django.contrib.sessions.

SESSION_CACHE_ALIAS

По умолчанию: 'default'

При использовании кэширующего бэкенда для сессии, указывает какой кэш использовать.

SESSION_ENGINE

По умолчанию: 'django.contrib.sessions.backends.db'

Указывает, где Django хранит сесионные данные. Возможные значения:

  • 'django.contrib.sessions.backends.db'

  • 'django.contrib.sessions.backends.file'

  • 'django.contrib.sessions.backends.cache'

  • 'django.contrib.sessions.backends.cached_db'

  • 'django.contrib.sessions.backends.signed_cookies'

Подробности смотрите Настройка сессий.

SESSION_EXPIRE_AT_BROWSER_CLOSE

По умолчанию: False

Истекает ли сессия после закрытия браузера. Смотрите Разница между временными и постоянными куками.

SESSION_FILE_PATH

По умолчанию: None

Если вы используете файловое хранилище сессионных данных, эта настройка укажет Django каталог, в котором хранить данные. Если используется значение по умолчанию (None), Django будет использовать стандартный каталог для временных файлов вашей операционной системы.

SESSION_SAVE_EVERY_REQUEST

По умолчанию: False

Сохранять ли данные сессии при каждом запросе. При False (по умолчанию), данные сохраняются только при изменении, то есть, если какое либо значение словаря было переназначено или удалено. Пустая сессия не будет создана, даже если эта настройка активна.

SESSION_SERIALIZER

По умолчанию 'django.contrib.sessions.serializers.JSONSerializer'

Полный путь импорта класса сериализатора, который будет использоваться для сериализации данных сеанса. Включенный сериализатор:

  • 'django.contrib.sessions.serializers.JSONSerializer'

Подробнее см. Сериализация сессии.

Сайты

Настройки для django.contrib.sites.

SITE_ID

По умолчанию: Не определена

ID(число) текущего сайта в таблице django_site базы данных. Используется для привязки данных к конкретному сайту, что позволяет использовать один установленный проект для нескольких сайтов.

Статические файлы

Настройки для django.contrib.staticfiles.

STATIC_ROOT

По умолчанию: None

Абсолютный путь к каталогу, в который collectstatic соберет все статические файлы.

Например: "/var/www/example.com/static/"

Если используется стандартное приложение staticfiles (по умолчанию), команда collectstatic соберет все статические файлы в указанном каталоге. Подробности смотрите в разделе о работе со статическими файлами.

Предупреждение

Это должен быть каталог(изначально пустой), куда будут скопированы все статические файлы для более простой настройки сервера; это не каталог, в котором вы создаете статические файлы при разработке. Вы должны создавать статические файлы в каталогах, которые будут найдены модулями поиска статических файлов. По умолчанию это подкаталоги 'static/' в приложениях и каталоги, указанные в STATICFILES_DIRS.

STATIC_URL

По умолчанию: None

URL, указывающий на каталог со статическими файлами STATIC_ROOT.

Пример: "static/" или "https://static.example.com/"

Если не равен None, будет использовать как базовый путь при определении «media» файлов (класс Media) и приложением staticfiles.

Должна оканчиваться косой чертой, если не пустая.

Возможно вам понадобится настроить раздачу этих файлов dev-сервером и обязательно сделать это для боевого сервера.

Примечание

Если STATIC_URL является относительным путем, то перед ним будет предоставленное сервером значение SCRIPT_NAME (или /, если оно не установлено). Это упрощает обслуживание приложения Django в подпути без добавления дополнительной конфигурации в настройки.

STATICFILES_DIRS

По умолчанию: [] (Пустой список)

Указывает каталоги, в которых бекенд FileSystemFinder будет искать статические файлы, например, при запуске команды collectstatic или findstatic или при раздачи файлов через встроенные представления.

Можно указать список строк, указывающих полный путь к каталогам с файлами, например:

STATICFILES_DIRS = [
    "/home/special.polls.com/polls/static",
    "/home/polls.com/polls/static",
    "/opt/webfiles/common",
]

Заметим, что эти пути должны использовать прямые слэши, то есть быть в Unix-стиле, даже на Windows (например, "C:/Users/user/mysite/extra_static_content").

Префиксы (необязательны)

Если вам необходимо раздавать какой-то каталог со статическими файлов через URL с префиксом, вы можете укахать его как (prefix, path), например:

STATICFILES_DIRS = [
    # ...
    ("downloads", "/opt/webfiles/stats"),
]

Например, если для STATIC_URL установлено значение 'static/', команда управления collectstatic будет собирать файлы «stats» в подкаталоге downloads' в STATIC_ROOT.

Это позволить обращаться к файлу '/opt/webfiles/stats/polls_20101022.tar.gz' по URL-у '/static/downloads/polls_20101022.tar.gz' в вашем шаблоне, например:

<a href="{% static 'downloads/polls_20101022.tar.gz' %}">

STATICFILES_FINDERS

Значения по умолчанию:

[
    "django.contrib.staticfiles.finders.FileSystemFinder",
    "django.contrib.staticfiles.finders.AppDirectoriesFinder",
]

Список бекендов для поиска статических файлов в вашем проекте.

По умолчанию включены бекенды, которые находят файлы в каталогах указанных в STATICFILES_DIRS (django.contrib.staticfiles.finders.FileSystemFinder) и подкаталогах static приложений (django.contrib.staticfiles.finders.AppDirectoriesFinder). Если существует несколько файлов с тем же именем, будет использоваться первый найденный.

По умолчанию один поисковик отключен: django.contrib.staticfiles.finders.DefaultStorageFinder. Если добавить его в настройку STATICFILES_FINDERS, он будет искать статические файлы в хранилище файлов по умолчанию, как определено ключом default в настройке STORAGES.

Примечание

При использовании AppDirectoriesFinder убедитесь, что ваше приложение может быть найдено командой. Просто добавьте его в настройку INSTALLED_APPS.

Бекенды для поиска файлов пока что не являются публичным интерфейсом, по этому он не задокументирован.

Список основных настроек

Кэш

База данных

Отладка

Email

Отправка ошибок

Загрузка файлов

Формы

Глобализация (i18n/l10n)

Интернационализация (i18n)

Локализация (l10n)

HTTP

Логгирование

Модели

Безопасность

Сериализация

Шаблоны

Тестирование

URL-ы

Back to Top