Настройки проекта

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

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

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

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

ABSOLUTE_URL_OVERRIDES

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

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

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

The model name used in this setting should be all lowercase, regardless of the case of the actual model class name.

ADMINS

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

A list of all the people who get code error notifications. When DEBUG=False and AdminEmailHandler is configured in LOGGING (done by default), Django emails these people the details of exceptions raised in the request/response cycle.

Each item in the list should be a tuple of (Full name, email address). Example:

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

ALLOWED_HOSTS

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

A list of strings representing the host/domain names that this Django site can serve. This is a security measure to prevent HTTP Host header attacks, which are possible even under many seemingly-safe web server configurations.

Values in this list can be fully qualified names (e.g. 'www.example.com'), in which case they will be matched against the request’s Host header exactly (case-insensitive, not including port). A value beginning with a period can be used as a subdomain wildcard: '.example.com' will match example.com, www.example.com, and any other subdomain of example.com. A value of '*' will match anything; in this case you are responsible to provide your own validation of the Host header (perhaps in a middleware; if so this middleware must be listed first in MIDDLEWARE).

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

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

When DEBUG is True and ALLOWED_HOSTS is empty, the host is validated against ['localhost', '127.0.0.1', '[::1]'].

ALLOWED_HOSTS is also checked when running tests.

Проверка выполняется только в методе 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.MemcachedCache'
  • 'django.core.cache.backends.memcached.PyLibMCCache'

Вы можете использовать сторонние бэкэнды указав в 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

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

The location of the cache to use. This might be the directory for a file system cache, a host and port for a memcache server, or an identifying name for a local memory cache. e.g.:

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

OPTIONS

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

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

Some information on available parameters can be found in the cache arguments documentation. For more information, consult your backend module’s own documentation.

TIMEOUT

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

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

VERSION

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

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

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

CACHE_MIDDLEWARE_ALIAS

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

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

CACHE_MIDDLEWARE_KEY_PREFIX

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

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

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

CACHE_MIDDLEWARE_SECONDS

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

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

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

CSRF_USE_SESSIONS

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

Whether to store the CSRF token in the user’s session instead of in a cookie. It requires the use of django.contrib.sessions.

Storing the CSRF token in a cookie (Django’s default) is safe, but storing it in the session is common practice in other web frameworks and therefore sometimes demanded by security auditors.

Since the default error views require the CSRF token, SessionMiddleware must appear in MIDDLEWARE before any middleware that may raise an exception to trigger an error view (such as PermissionDenied) if you’re using CSRF_USE_SESSIONS. See Порядок промежуточных слоёв.

CSRF_FAILURE_VIEW

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

A dotted path to the view function to be used when an incoming request is rejected by the CSRF protection. The function should have this signature:

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

where reason is a short message (intended for developers or logging, not for end users) indicating the reason the request was rejected. It should return an HttpResponseForbidden.

django.views.csrf.csrf_failure() accepts an additional template_name parameter that defaults to '403_csrf.html'. If a template with that name exists, it will be used to render the page.

CSRF_HEADER_NAME

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

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

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

CSRF_TRUSTED_ORIGINS

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

Список доменов, с которых можно отправлять небезопасные запросы (например POST). Для защищенных небезопасных запросов, CSRF проверяет, что заголовок Referer содержит значение равное заголовку Host. Это не позволяет отправлять POST запрос, например, с subdomain.example.com на api.example.com. Если вам нужны небезопасные запросы через HTTPS на разные домены, продолжая наш пример, добавьте "subdomain.example.com" в этот список. Настройка также поддерживает под-домены, вы можете добавить ".example.com", например, чтобы разрешить запросы со всех под-доменов example.com.

DATABASES

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

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

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

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

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

When connecting to other database backends, such as MariaDB, MySQL, Oracle, or PostgreSQL, additional connection parameters will be required. See the ENGINE setting below on how to specify other database types. This example is for 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 подключение никогда не будет закрываться.

OPTIONS

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

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

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

PASSWORD

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

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

PORT

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

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

TIME_ZONE

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

A string representing the time zone for datetimes stored in this database (assuming that it doesn’t support time zones) or None. This inner option of the DATABASES setting accepts the same values as the general TIME_ZONE setting.

Настройка позволяет использовать сторонние базы данных, которые сохраняют дату и время в локальном часовом поясе, а не UTC. Чтобы избежать проблем с DST(переход на летнее/зимнее время), вы не должны использовать эту настройку для баз данных, которые полностью управляются Django.

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

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

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

DISABLE_SERVER_SIDE_CURSORS

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

Set this to True if you want to disable the use of server-side cursors with QuerySet.iterator(). Transaction pooling and server-side cursors describes the use case.

This is a PostgreSQL-specific setting.

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, которая не имеет зависимостей.

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

MIRROR

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

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

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

NAME

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

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

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

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

SERIALIZE

Указывает сериализировать ли содержимое базы данных в JSON в памяти перед запуском тестов (используется для восстановления состояния базы данных между тестами, если не поддерживаются транзакции). Используется стандартным механизмом выполнения тестов Django. Вы можете указать False, чтобы ускорить выполнение тестов, если у вас нет тестов с serialized_rollback=True.

TEMPLATE

This is a PostgreSQL-specific setting.

The name of a template (e.g. 'template0') from which to create the test database.

CREATE_DB

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

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

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

CREATE_USER

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

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

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

USER

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

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

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

PASSWORD

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

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

The password to use when connecting to the Oracle database that will be used when running tests. If not provided, Django will generate a random password.

ORACLE_MANAGED_FILES
New in Django 2.2.

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

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

If set to True, Oracle Managed Files (OMF) tablespaces will be used. DATAFILE and DATAFILE_TMP will be ignored.

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.

The amount by which the DATAFILE is extended when more space is required.

DATAFILE_TMP_EXTSIZE

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

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

The amount by which the DATAFILE_TMP is extended when more space is required.

DATA_UPLOAD_MAX_MEMORY_SIZE

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

The maximum size in bytes that a request body may be before a SuspiciousOperation (RequestDataTooBig) is raised. The check is done when accessing request.body or request.POST and is calculated against the total request size excluding any file upload data. You can set this to None to disable the check. Applications that are expected to receive unusually large form posts should tune this setting.

The amount of request data is correlated to the amount of memory needed to process the request and populate the GET and POST dictionaries. Large requests could be used as a denial-of-service attack vector if left unchecked. Since web servers don’t typically perform deep request inspection, it’s not possible to perform a similar check at that level.

Смотрите FILE_UPLOAD_MAX_MEMORY_SIZE.

DATA_UPLOAD_MAX_NUMBER_FIELDS

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

The maximum number of parameters that may be received via GET or POST before a SuspiciousOperation (TooManyFields) is raised. You can set this to None to disable the check. Applications that are expected to receive an unusually large number of form fields should tune this setting.

The number of request parameters is correlated to the amount of time needed to process the request and populate the GET and POST dictionaries. Large requests could be used as a denial-of-service attack vector if left unchecked. Since web servers don’t typically perform deep request inspection, it’s not possible to perform a similar check at that level.

DATABASE_ROUTERS

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

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

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

DATE_FORMAT

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

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

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

DATE_INPUT_FORMATS

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

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

A list of formats that will be accepted when inputting data on a date field. Formats will be tried in order, using the first valid one. Note that these format strings use Python’s datetime module syntax, not the format strings from the date template filter.

При USE_L10N равном True, формат даты текущей локали имеет больший приоритет.

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

DATETIME_FORMAT

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

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

Смотрите 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'
    '%Y-%m-%d',              # '2006-10-25'
    '%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',              # '10/25/2006'
    '%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'
    '%m/%d/%y',              # '10/25/06'
]

A list of formats that will be accepted when inputting data on a datetime field. Formats will be tried in order, using the first valid one. Note that these format strings use Python’s datetime module syntax, not the format strings from the date template filter.

При USE_L10N равном True, формат даты текущей локали имеет больший приоритет.

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

DEBUG

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

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

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

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

As a security measure, Django will not include settings that might be sensitive, such as SECRET_KEY. Specifically, it will exclude any setting whose name includes any of the following:

  • '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

If set to True, Django’s exception handling of view functions (handler500, or the debug view if DEBUG is True) and logging of 500 responses (django.request) is skipped and exceptions propagate upwards.

This can be useful for some test setups. It shouldn’t be used on a live site unless you want your web server (instead of Django) to generate «Internal Server Error» responses. In that case, make sure your server doesn’t show the stack trace or other sensitive information in the response.

DECIMAL_SEPARATOR

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

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

Заметим, при USE_L10N равном True, будет использовано значение из настроек локали.

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

DEFAULT_CHARSET

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

Default charset to use for all HttpResponse objects, if a MIME type isn’t manually specified. Used when constructing the Content-Type header.

DEFAULT_EXCEPTION_REPORTER_FILTER

Default: 'django.views.debug.SafeExceptionReporterFilter'

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

DEFAULT_FILE_STORAGE

По умолчанию: 'django.core.files.storage.FileSystemStorage'

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

DEFAULT_FROM_EMAIL

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

Email, используемый при отправки различных автоматических рассылок от имени менеджера сайта. Не включает письма с ошибками на сайта для ADMINS и MANAGERS. Для таких писем используйте SERVER_EMAIL.

DEFAULT_INDEX_TABLESPACE

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

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

DEFAULT_TABLESPACE

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

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

DISALLOWED_USER_AGENTS

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

List of compiled regular expression objects representing User-Agent strings that are not allowed to visit any page, systemwide. Use this for bots/crawlers. This is only used if CommonMiddleware is installed (see Промежуточный слой (Middleware)).

EMAIL_BACKEND

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

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

EMAIL_FILE_PATH

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

The directory used by the file email backend to store output files.

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

Whether to send the SMTP Date header of email messages in the local time zone (True) or in 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, вы можете указать путь к сертификату в PEM-формате, который будет использоваться при создании SSL подключения.

EMAIL_SSL_KEYFILE

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

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

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

EMAIL_TIMEOUT

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

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

FILE_CHARSET

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

The character encoding used to decode any files read from disk. This includes template files, static files, and translation catalogs.

Не рекомендуется, начиная с версии 2.2: This setting is deprecated. Starting with Django 3.1, files read from disk must be UTF-8 encoded.

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

Default: 0o644

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

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

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

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

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

Это значение всегда должно начинаться с 0.

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

Changed in Django 3.0:

In older versions, the default value is None.

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

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

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

Заметим, что эти пути должны использовать прямые слэши, то есть быть в Unix-стиле, а не Windows.

Смотрите Providing data with fixtures и Загрузка фикстур.

FORCE_SCRIPT_NAME

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

If not None, this will be used as the value of the SCRIPT_NAME environment variable in any HTTP request. This setting can be used to override the server-provided value of SCRIPT_NAME, which may be a rewritten version of the preferred value or not supplied at all. It is also used by django.setup() to set the URL resolver script prefix outside of the request/response cycle (e.g. in management commands and standalone scripts) to generate correct URLs when SCRIPT_NAME is not /.

FORM_RENDERER

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

The class that renders form widgets. It must implement the low-level render API.

FORMAT_MODULE_PATH

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

A full Python path to a Python package that contains custom format definitions for project locales. If not None, Django will check for a formats.py file, under the directory named as the current locale, and will use the formats defined in this file.

Например, если 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 пока не будет найдет модуль, который содержит нужный формат.

Available formats are:

IGNORABLE_404_URLS

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

List of compiled regular expression objects describing URLs that should be ignored when reporting HTTP 404 errors via email (see Отчёты об ошибках). Regular expressions are matched against request's full paths (including query string, if any). Use this if your site does not provide a commonly requested file such as favicon.ico or robots.txt.

Используется при включенном 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". Смотрите список кодов языков и Интернационализация и локализация.

Необходимо включить для использования этой настройки USE_I18N.

Настройка используется в двух случаях:

  • Если мидлвар для определения локали отключен, она указывает какой язык использовать для всех пользователей.
  • If the locale middleware is active, it provides a fallback language in case the user’s preferred language can’t be determined or is not supported by the website. It also provides the fallback translation when a translation for a given literal doesn’t exist for the user’s preferred language.

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

LANGUAGES

Default: A list of all available languages. This list is continually growing and including a copy here would inevitably become rapidly out of date. You can see the current list of translated languages by looking in django/conf/global_settings.py.

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

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

If you define a custom LANGUAGES setting, you can mark the language names as translation strings using the gettext_lazy() function.

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

from django.utils.translation import gettext_lazy as _

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

LANGUAGES_BIDI

Default: A list of all language codes that are written right-to-left. You can see the current list of these languages by looking in django/conf/global_settings.py.

The list contains language codes for languages that are written right-to-left.

Generally, the default value should suffice. Only set this setting if you want to restrict language selection to a subset of the Django-provided languages. If you define a custom LANGUAGES setting, the list of bidirectional languages may contain language codes which are not enabled on a given site.

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. Смотрите также Настройка логгирования.

You can see the default logging configuration by looking in django/utils/log.py.

LOGGING_CONFIG

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

A path to a callable that will be used to configure logging in the Django project. Points at an instance of Python’s dictConfig configuration method by default.

Если 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.

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

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

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

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

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

MIDDLEWARE

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

A list of middleware to use. See Промежуточный слой (Middleware).

MIGRATION_MODULES

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

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

Например:

{'blog': 'blog.db_migrations'}

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

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

When you supply None as a value for an app, Django will consider the app as an app without migrations regardless of an existing migrations submodule. This can be used, for example, in a test settings file to skip migrations while testing (tables will still be created for the apps“ models). If this is used in your general project settings, remember to use the migrate --run-syncdb option if you want to create tables for the app.

MONTH_DAY_FORMAT

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

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

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

Заметим, при USE_L10N равном True, значение текущей локали имеет больший приоритет и будет использоваться вместо настройки.

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

NUMBER_GROUPING

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

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

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

Some locales use non-uniform digit grouping, e.g. 10,00,00,000 in en_IN. For this case, you can provide a sequence with the number of digit group sizes to be applied. The first number defines the size of the group preceding the decimal delimiter, and each number that follows defines the size of preceding groups. If the sequence is terminated with -1, no further grouping is performed. If the sequence terminates with a 0, the last group size is used for the remainder of the number.

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

NUMBER_GROUPING = (3, 2, 0)

Заметим, при USE_L10N равном True, будет использовано значение из настроек локали.

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

PREPEND_WWW

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

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

ROOT_URLCONF

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

A string representing the full Python import path to your root URLconf, for example "mydjangoapps.urls". Can be overridden on a per-request basis by setting the attribute urlconf on the incoming HttpRequest object. See Как Django обрабатывает запрос for details.

SECRET_KEY

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

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

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

Uses of the key shouldn’t assume that it’s text or bytes. Every use should go through force_str() or force_bytes() to convert it to the desired type.

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

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

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

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

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

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

Примечание

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

SECURE_BROWSER_XSS_FILTER

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

При True SecurityMiddleware добавит заголовок X-XSS-Protection: 1; mode=block для всех ответов, которые еще не содержат его.

Modern browsers don’t honor X-XSS-Protection HTTP header anymore. Although the setting offers little practical benefit, you may still want to set the header if you support older browsers.

SECURE_CONTENT_TYPE_NOSNIFF

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

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

Changed in Django 3.0:

In older versions, the default value is False.

SECURE_HSTS_INCLUDE_SUBDOMAINS

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

If True, the SecurityMiddleware adds the includeSubDomains directive to the HTTP Strict Transport Security header. It has no effect unless SECURE_HSTS_SECONDS is set to a non-zero value.

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

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

SECURE_HSTS_PRELOAD

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

If True, the SecurityMiddleware adds the preload directive to the HTTP Strict Transport Security header. It has no effect unless SECURE_HSTS_SECONDS is set to a non-zero value.

SECURE_HSTS_SECONDS

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

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

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

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

SECURE_PROXY_SSL_HEADER

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

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

By default, is_secure() determines if a request is secure by confirming that a requested URL uses https://. This method is important for Django’s CSRF protection, and it may be used by your own code or third-party apps.

If your Django app is behind a proxy, though, the proxy may be «swallowing» whether the original request uses HTTPS or not. If there is a non-HTTPS connection between the proxy and Django then is_secure() would always return False – even for requests that were made via HTTPS by the end user. In contrast, if there is an HTTPS connection between the proxy and Django then is_secure() would always return True – even for requests that were made originally via HTTP.

In this situation, configure your proxy to set a custom HTTP header that tells Django whether the request came in via HTTPS, and set SECURE_PROXY_SSL_HEADER so that Django knows what header to look for.

Set a tuple with two elements – the name of the header to look for and the required value. For example:

SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

This tells Django to trust the X-Forwarded-Proto header that comes from our proxy, and any time its value is 'https', then the request is guaranteed to be secure (i.e., it originally came in via HTTPS).

You should only set this setting if you control your proxy or have some other guarantee that it sets/strips this header appropriately.

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

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

Modifying this setting can compromise your site’s security. Ensure you fully understand your setup before changing it.

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

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

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

SECURE_REDIRECT_EXEMPT

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

If a URL path matches a regular expression in this list, the request will not be redirected to HTTPS. The SecurityMiddleware strips leading slashes from URL paths, so patterns shouldn’t include them, e.g. SECURE_REDIRECT_EXEMPT = [r'^no-ssl/$', …]. If SECURE_SSL_REDIRECT is False, this setting has no effect.

SECURE_REFERRER_POLICY

New in Django 3.0.

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

If configured, the SecurityMiddleware sets the Referrer Policy header on all responses that do not already have it to the value provided.

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'

Email-адрес, используемый в качестве адреса отправителя, для писем с ошибками, которые отсылаются на адреса, указание в ADMINS и MANAGERS.

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

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

SHORT_DATE_FORMAT

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

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

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

SHORT_DATETIME_FORMAT

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

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

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

SIGNING_BACKEND

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

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

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

SILENCED_SYSTEM_CHECKS

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

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

Смотрите System check framework.

TEMPLATES

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

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

Here’s a setup that tells the Django template engine to load templates from the templates subdirectory inside each installed application:

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'

Название класса, используемого для запуска тестирования. Смотрите Using different testing frameworks.

TEST_NON_SERIALIZED_APPS

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

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

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

THOUSAND_SEPARATOR

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

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

Заметим, при USE_L10N равном True, будет использовано значение из настроек локали.

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

TIME_FORMAT

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

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

Смотрите 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'
]

A list of formats that will be accepted when inputting data on a time field. Formats will be tried in order, using the first valid one. Note that these format strings use Python’s datetime module syntax, not the format strings from the date template filter.

При USE_L10N равном True, формат даты текущей локали имеет больший приоритет.

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

TIME_ZONE

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

A string representing the time zone for this installation. See the list of time zones.

Примечание

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

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

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

On Unix environments (where time.tzset() is implemented), Django sets the os.environ['TZ'] variable to the time zone you specify in the TIME_ZONE setting. Thus, all your views and models will automatically operate in this time zone. However, Django won’t set the TZ environment variable if you’re using the manual configuration option as described in manually configuring settings. If Django doesn’t set the TZ environment variable, it’s up to you to ensure your processes are running in the correct environment.

Примечание

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

USE_I18N

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

A boolean that specifies whether Django’s translation system should be enabled. This provides a way to turn it off, for performance. If this is set to False, Django will make some optimizations so as not to load the translation machinery.

Смотрите LANGUAGE_CODE, USE_L10N и USE_TZ.

Примечание

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

USE_L10N

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

Указывает, использовать ли локализованный формат даты. При True, например, Django будет отображать числа и даты в формате текущей локали.

Смотрите LANGUAGE_CODE, USE_I18N и USE_TZ.

Примечание

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

USE_THOUSAND_SEPARATOR

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

A boolean that specifies whether to display numbers using a thousand separator. When USE_L10N is set to True and if this is also set to True, Django will use the values of THOUSAND_SEPARATOR and NUMBER_GROUPING to format numbers unless the locale already has an existing thousands separator. If there is a thousands separator in the locale format, it will have higher precedence and will be applied instead.

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

USE_TZ

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

Указывает, используется ли часовой пояс. При True, Django будет использовать объекты даты и времени с указанным часовым поясом. Иначе Django будет использовать объекты даты и времени без учета часового пояса.

Смотрите TIME_ZONE, USE_I18N и USE_L10N.

Примечание

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

USE_X_FORWARDED_HOST

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

A boolean that specifies whether to use the X-Forwarded-Host header in preference to the Host header. This should only be enabled if a proxy which sets this header is in use.

This setting takes priority over USE_X_FORWARDED_PORT. Per RFC 7239#section-5.3, the X-Forwarded-Host header can include the port number, in which case you shouldn’t use USE_X_FORWARDED_PORT.

USE_X_FORWARDED_PORT

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

A boolean that specifies whether to use the X-Forwarded-Port header in preference to the SERVER_PORT META variable. This should only be enabled if a proxy which sets this header is in use.

USE_X_FORWARDED_HOST takes priority over this setting.

WSGI_APPLICATION

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

The full Python path of the WSGI application object that Django’s built-in servers (e.g. runserver) will use. The django-admin startproject management command will create a standard wsgi.py file with an application callable in it, and point this setting to that application.

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

YEAR_MONTH_FORMAT

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

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

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

Заметим, при USE_L10N равном True, значение текущей локали имеет больший приоритет и будет использоваться вместо настройки.

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

X_FRAME_OPTIONS

Default: 'DENY'

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

Changed in Django 3.0:

In older versions, the default value is SAMEORIGIN.

Auth

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

AUTHENTICATION_BACKENDS

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

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

AUTH_USER_MODEL

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

Модель пользователя. Смотрите Substituting a custom User model.

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

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

LOGIN_REDIRECT_URL

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

The URL or named URL pattern where requests are redirected after login when the LoginView doesn’t get a next GET parameter.

LOGIN_URL

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

The URL or named URL pattern where requests are redirected for login when using the login_required() decorator, LoginRequiredMixin, or AccessMixin.

LOGOUT_REDIRECT_URL

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

The URL or named URL pattern where requests are redirected after logout if LogoutView doesn’t have a next_page attribute.

If None, no redirect will be performed and the logout view will be rendered.

PASSWORD_RESET_TIMEOUT_DAYS

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

The minimum number of days a password reset link is valid for. Depending on when the link is generated, it will be valid for up to a day longer.

Used by the PasswordResetConfirmView.

PASSWORD_HASHERS

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

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

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

AUTH_PASSWORD_VALIDATORS

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

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

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 классов. Указанные значения дополняют значения по умолчанию. То есть вам нужно указать только те, которые вы хотите переопределить. Смотреть Displaying messages.

Важно

Если вы переопределили 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.PickleSerializer'
  • 'django.contrib.sessions.serializers.JSONSerializer'

Смотрите Сериализация сессии, обратите внимание на опасность выполнения стороннего кода при использовании PickleSerializer.

Сайты

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

SITE_ID

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

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

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

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

STATIC_ROOT

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

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

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

If the staticfiles contrib app is enabled (as in the default project template), the collectstatic management command will collect static files into this directory. See the how-to on managing static files for more details about usage.

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

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

STATIC_URL

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

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

Например: "/static/" или "http://static.example.com/"

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

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

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

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").

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

Вы можете указать префикс для каталога как кортеж (префикс, путь), например:

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

Предположим STATIC_URL равна '/static/', команда collectstatic добавит файлы «stats» в подкаталог 'downloads' в STATIC_ROOT.

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

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

STATICFILES_STORAGE

По умолчанию: 'django.contrib.staticfiles.storage.StaticFilesStorage'

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

Классы бэкендов можно найти в django.contrib.staticfiles.storage.staticfiles_storage.

Например, смотрите Раздача статических файлов через облачный сервис или CDN.

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. Он ищет файлы в бэкенде для хранения файлов указанном в настройке DEFAULT_FILE_STORAGE.

Примечание

When using the AppDirectoriesFinder finder, make sure your apps can be found by staticfiles by adding the app to the INSTALLED_APPS setting of your site.

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

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

Формы

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

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

Шаблоны

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