Spec-Zone.ru › Django 2.2

Настройки

  • Основные настройки
  • Авторизация
  • Сообщения
  • Сессии
  • Сайты
  • Статические файлы
  • Тематический указатель основных настроек

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

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

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

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

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),
}

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

ADMINS

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

Список всех людей, получающих уведомления об ошибках кода. Когда DEBUG=False и AdminEmailHandler настроен в LOGGING (по умолчанию), Django отправляет этим людям подробности исключений, возникших в цикле запроса/ответа.

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

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

ALLOWED_HOSTS

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

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

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

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 запроса не соответствует ни одному из шаблонов в URLconf и не заканчивается на косую черту, выводится HTTP-перенаправление на тот же URL с добавленной косой чертой. Обратите внимание, что перенаправление может привести к потере любых данных, отправленных в запросе POST.

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

CACHES

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

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

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

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

BACKEND

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

Используемый кэш-бекенд. Встроенные кэш-бекенды:

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

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

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

VERSION

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

Номер версии по умолчанию для ключей кэша, сгенерированных сервером Django.

См. документацию по кэшу для получения дополнительной информации.

CACHE_MIDDLEWARE_ALIAS

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

Подключение к кэшу, которое нужно использовать для middleware кэша.

CACHE_MIDDLEWARE_KEY_PREFIX

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

Строка, которая будет добавлена в качестве префикса к ключам кэша, сгенерированным middleware кэша. Этот префикс объединяется с настройкой KEY_PREFIX; он не заменяет его.

См. фреймворк кэша Django.

CACHE_MIDDLEWARE_SECONDS

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

Количество секунд по умолчанию для кэширования страницы для middleware кэша.

END_OF_DOCUMENT_MARKER

См. рамку кэширования Django.

CSRF_COOKIE_AGE

По умолчанию: 31449600 (примерно 1 год, в секундах)

Срок действия куки CSRF в секундах.

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

Некоторые браузеры (в частности, Internet Explorer) могут запрещать использование постоянных куки или повреждать индексы куки-хранилища на диске, из-за чего проверки защиты CSRF могут (иногда прерывисто) завершаться неудачей. Измените эту настройку на None для использования куки CSRF на основе сессии, которые хранят куки в памяти вместо постоянного хранения.

CSRF_COOKIE_DOMAIN

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

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

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

CSRF_COOKIE_HTTPONLY

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

Использовать флаг HttpOnly для куки CSRF. Если это значение установлено на True, клиентский JavaScript не сможет получить доступ к куки CSRF.

Определение куки CSRF как HttpOnly не обеспечивает практической защиты, так как CSRF защищает только от междоменных атак. Если злоумышленник может прочитать куки через JavaScript, они уже находятся в том же домене, что и браузер, поэтому они могут делать все, что им заблагорассудится. (XSS — гораздо более серьезная проблема, чем CSRF).

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

Если вы включите эту настройку и вам необходимо отправить значение токена CSRF с запросом AJAX, ваш JavaScript должен извлечь значение из скрытого поля ввода формы CSRF токена вместо куки.

См. SESSION_COOKIE_HTTPONLY для получения подробной информации о HttpOnly.

CSRF_COOKIE_NAME

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

Имя куки для использования токена аутентификации CSRF. Вы можете выбрать любое имя (при условии, что оно отличается от других имён куки в вашем приложении). См. Защита от подделок межсайтовых запросов.

CSRF_COOKIE_PATH

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

Путь, установленный в куки CSRF. Он должен совпадать с путём URL-адреса вашей установки Django или быть родительским по отношению к этому пути.

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

CSRF_COOKIE_SAMESITE

Новое в Django 2.1.

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

Значение флага SameSite в куки CSRF. Этот флаг предотвращает отправку куки в межсайтовых запросах.

См. SESSION_COOKIE_SAMESITE для получения подробной информации о SameSite.

CSRF_COOKIE_SECURE

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

Использовать безопасную куки для куки CSRF. Если это значение установлено на True, куки будет помечена как «безопасная», что означает, что браузеры могут гарантировать, что куки отправляется только с подключением HTTPS.

CSRF_USE_SESSIONS

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

Хранить токен CSRF в сессии пользователя вместо куки. Требует использования django.contrib.sessions.

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

Поскольку предварительные представления об ошибках требуют токена CSRF, SessionMiddleware должен появляться в MIDDLEWARE перед любым средством, которое может вызвать исключение для запуска представления об ошибке (например, PermissionDenied) при использовании CSRF_USE_SESSIONS. См. Порядок обработки middleware.

CSRF_FAILURE_VIEW

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

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

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

где reason — короткое сообщение (предназначенное для разработчиков или логирования, а не для конечных пользователей), указывающее причину отклонения запроса. Оно должно возвращать HttpResponseForbidden.

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). Для небезопасного запроса secure защита Django от подделок межсайтовых запросов требует, чтобы запрос имел заголовок 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',
    }
}

При подключении к другим бэкендам баз данных, таким как 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.db.backends.postgresql'
  • 'django.db.backends.mysql'
  • 'django.db.backends.sqlite3'
  • 'django.db.backends.oracle'

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

HOST

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

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

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

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

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

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

NAME

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

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

CONN_MAX_AGE

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

Срок жизни подключения к базе данных в секундах. Используйте 0 для закрытия подключений к базе данных в конце каждого запроса — историческое поведение Django — и None для неограниченных постоянных подключений.

OPTIONS

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

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

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

PASSWORD

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

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

PORT

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

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

TIME_ZONE

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

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

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

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

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

Когда USE_TZ равно False, установка этого параметра приводит к ошибке.

DISABLE_SERVER_SIDE_CURSORS

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

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

Это PostgreSQL-специфический параметр.

USER

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

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

TEST

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

Словарь настроек для тестовых баз данных; для получения более подробной информации о создании и использовании тестовых баз данных см. Тестовая база данных.

Вот пример с настройками тестовой базы данных:

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

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

CHARSET

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

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

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

COLLATION

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

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

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

DEPENDENCIES

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

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

MIRROR

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

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

Эта настройка предназначена для тестирования конфигураций «мастер/раппликации» (в некоторых базах данных это «мастер/раб») нескольких баз данных. См. документацию по тестированию конфигураций «мастер/раб» для получения подробностей.

NAME

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

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

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

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

SERIALIZE

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

TEMPLATE

Это PostgreSQL-специфическая настройка.

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

CREATE_DB

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

Это настройка, специфичная для Oracle.

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

CREATE_USER

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

Это настройка, специфичная для Oracle.

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

USER

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

Это настройка, специфичная для Oracle.

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

PASSWORD

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

Это настройка, специфичная для Oracle.

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

ORACLE_MANAGED_FILES
Новое в Django 2.2.

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

Это настройка, специфичная для Oracle.

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

TBLSPACE

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

Это настройка, специфичная для Oracle.

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

TBLSPACE_TMP

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

Это настройка, специфичная для Oracle.

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

DATAFILE

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

Это настройка, специфичная для Oracle.

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

DATAFILE_TMP

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

Это настройка, специфичная для Oracle.

Имя файла данных для использования в 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 при необходимости.

DATAFILE_TMP_EXTSIZE

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

Это настройка, специфичная для Oracle.

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

DATA_UPLOAD_MAX_MEMORY_SIZE

По умолчанию: 2621440 (т.е. 2,5 МБ).

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

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

См. также FILE_UPLOAD_MAX_MEMORY_SIZE.

DATA_UPLOAD_MAX_NUMBER_FIELDS

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

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

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

DATABASE_ROUTERS

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

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

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

DATE_FORMAT

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

Формат по умолчанию для отображения полей даты в любой части системы. Обратите внимание, что если USE_L10N установлено в True, то формат, определённый языковым набором, имеет более высокий приоритет и будет применён вместо него. См. allowed date format strings.

См. также 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'
]

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

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

См. также DATETIME_INPUT_FORMATS и TIME_INPUT_FORMATS.

DATETIME_FORMAT

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

Формат по умолчанию для отображения полей datetime во всех частях системы. Обратите внимание, что если USE_L10N установлено в True, то формат, определённый языковым набором, имеет более высокий приоритет и будет применён вместо него. См. allowed date format strings.

См. также DATE_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'
]

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

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

См. также DATE_INPUT_FORMATS и TIME_INPUT_FORMATS.

DEBUG

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

Логическая переменная, включающая/отключающая режим отладки.

Никогда не развёртывайте сайт в производство с DEBUG включённым.

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

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

  • 'API'
  • 'KEY'
  • 'PASS'
  • 'SECRET'
  • 'SIGNATURE'
  • 'TOKEN'

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

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

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

Наконец, если DEBUG включён, вам также необходимо правильно установить настройку ALLOWED_HOSTS. В противном случае все запросы будут возвращены как "Плохой запрос (400)".

Примечание

Файл по умолчанию settings.py, созданный командой django-admin startproject, устанавливает DEBUG = True для удобства.

DEBUG_PROPAGATE_EXCEPTIONS

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

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

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

DECIMAL_SEPARATOR

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

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

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

См. также NUMBER_GROUPING, THOUSAND_SEPARATOR и USE_THOUSAND_SEPARATOR.

DEFAULT_CHARSET

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

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

DEFAULT_CONTENT_TYPE

По умолчанию: 'text/html'

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

Устарело начиная с версии 2.0: Это значение устарело, потому что оно плохо взаимодействует с приложениями сторонних разработчиков и устарело, так как HTML5 в основном заменил XHTML.

DEFAULT_EXCEPTION_REPORTER_FILTER

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

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

DEFAULT_FILE_STORAGE

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

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

DEFAULT_FROM_EMAIL

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

Адрес электронной почты по умолчанию для различных автоматических сообщений от администратора(ов) сайта. Это не включает сообщения об ошибках, отправленные адресатам ADMINS и MANAGERS; для этого см. SERVER_EMAIL.

DEFAULT_INDEX_TABLESPACE

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

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

DEFAULT_TABLESPACE

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

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

DISALLOWED_USER_AGENTS

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

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

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, вы можете дополнительно указать путь к файлу цепочки сертификатов в формате PEM, который будет использоваться для SSL-соединения.

EMAIL_SSL_KEYFILE

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

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

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

EMAIL_TIMEOUT

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

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

FILE_CHARSET

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

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

Устарело начиная с версии 2.2: Это настройка устарела. Начиная с Django 3.1, файлы, считанные с диска, должны быть закодированы в UTF-8.

FILE_UPLOAD_HANDLERS

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

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

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

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

FILE_UPLOAD_MAX_MEMORY_SIZE

По умолчанию: 2621440 (т. е. 2,5 МБ).

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

См. также DATA_UPLOAD_MAX_MEMORY_SIZE.

FILE_UPLOAD_DIRECTORY_PERMISSIONS

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

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

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

Это значение отражает функциональность и замечания настройки FILE_UPLOAD_PERMISSIONS.

FILE_UPLOAD_PERMISSIONS

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

Числовой режим (т. е. 0o644) для новых загруженных файлов. Более подробная информация о значении этих режимов доступна в документации os.chmod().

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

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

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

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

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

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

FILE_UPLOAD_TEMP_DIR

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

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

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

FIRST_DAY_OF_WEEK

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

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

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

FIXTURE_DIRS

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

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

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

См. Предоставление данных с фикстурами и Загрузка фикстур.

FORCE_SCRIPT_NAME

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

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

FORM_RENDERER

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

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

FORMAT_MODULE_PATH

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

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

Например, если 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, пока не найдёт модуль, который фактически определяет данный формат. Это означает, что форматы, определённые в пакетах, расположенных выше в списке, будут иметь приоритет над одинаковыми форматами в пакетах, расположенных ниже.

Доступные форматы:

  • DATE_FORMAT
  • DATE_INPUT_FORMATS
  • DATETIME_FORMAT,
  • DATETIME_INPUT_FORMATS
  • DECIMAL_SEPARATOR
  • FIRST_DAY_OF_WEEK
  • MONTH_DAY_FORMAT
  • NUMBER_GROUPING
  • SHORT_DATE_FORMAT
  • SHORT_DATETIME_FORMAT
  • THOUSAND_SEPARATOR
  • TIME_FORMAT
  • TIME_INPUT_FORMATS
  • YEAR_MONTH_FORMAT

IGNORABLE_404_URLS

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

Список скомпилированных объектов регулярных выражений, описывающих URL-адреса, которые следует игнорировать при сообщении об ошибках HTTP 404 по электронной почте (см. Отчёт об ошибках). Регулярные выражения сопоставляются с request's full paths (включая строку запроса, если она есть). Используйте это, если ваш сайт не предоставляет часто запрашиваемый файл, например, favicon.ico или robots.txt.

Используется только в случае, если BrokenLinkEmailsMiddleware включён (см. Средства промежуточного ПО).

INSTALLED_APPS

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

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

  • класса конфигурации приложения (предпочтительный вариант), или
  • пакета, содержащего приложение.

Подробнее о конфигурациях приложений.

Используйте реестр приложений для интроспекции

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

Имена приложений и метки должны быть уникальными в INSTALLED_APPS

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

Метка приложения labels — по умолчанию, последняя часть имени — также должна быть уникальной. Например, вы не можете включить как django.contrib.auth, так и myproject.auth. Однако вы можете переименовать приложение с помощью пользовательской конфигурации, которая определяет другую метку label.

Эти правила применяются независимо от того, ссылается ли INSTALLED_APPS на классы конфигурации приложений или пакеты приложений.

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

INTERNAL_IPS

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

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

  • Разрешают контекстному процессору debug() добавить некоторые переменные в контекст шаблона.
  • Разрешают использование закладок admindocs bookmarklets, даже если пользователь не вошел в систему как администратор.
  • Отмечаются как «внутренние» (в отличие от «ВНЕШНИЕ») в электронных письмах AdminEmailHandler.

LANGUAGE_CODE

Значение по умолчанию: 'en-us'

Строка, представляющая код языка для данной установки. Она должна быть в стандартном формате кода языка. Например, английский язык США — "en-us". См. также список идентификаторов языков и Международная и локальная поддержка.

USE_I18N должен быть активен для того, чтобы данное значение имело эффект.

Это служит двум целям:

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

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

LANGUAGE_COOKIE_AGE

Значение по умолчанию: None (истекает при закрытии браузера)

Срок действия cookie языка в секундах.

LANGUAGE_COOKIE_DOMAIN

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

Домен для cookie языка. Установите это значение на строку, такую как "example.com", для cookie между доменами или используйте None для стандартного cookie домена.

Будьте осторожны при обновлении этого параметра на сайте в режиме производства. Если вы обновите это значение, чтобы включить cookie между доменами на сайте, который ранее использовал cookie стандартного домена, существующие cookie пользователей со старым доменом не будут обновлены. Это приведет к тому, что пользователи сайта не смогут переключать язык, пока эти cookie не истекут. Единственный безопасный и надежный способ выполнить переключение — навсегда изменить имя cookie языка (через параметр LANGUAGE_COOKIE_NAME) и добавить посредник, который копирует значение из старого cookie в новый, а затем удаляет старый.

LANGUAGE_COOKIE_NAME

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

Имя cookie для cookie языка. Вы можете задать любое имя (при условии, что оно отличается от других имен cookie в вашем приложении). См. Международная и локальная поддержка.

LANGUAGE_COOKIE_PATH

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

Путь, установленный для cookie языка. Он должен совпадать с путём URL вашей установки Django или быть предком этого пути.

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

Будьте осторожны при обновлении этого параметра на сайте в режиме производства. Если вы обновите это значение, чтобы использовать более глубокий путь, чем раньше, существующие cookie пользователей со старым путём не будут обновлены. Это приведёт к тому, что пользователи сайта не смогут переключать язык, пока эти cookie не истекут. Единственный безопасный и надёжный способ выполнить переключение — изменить имя cookie языка (через настройку LANGUAGE_COOKIE_NAME) и добавить посредник, который копирует значение из старого cookie в новый, а затем удаляет старый.

LANGUAGES

Значение по умолчанию: Список всех доступных языков. Этот список постоянно растёт, и включение его копии здесь неизбежно быстро устареет. Вы можете увидеть текущий список переведённых языков, посмотрев в django/conf/global_settings.py.

Список представляет собой список пар кортежей в формате (код языка, language name) — например, ('ja', 'Japanese'). Это определяет, какие языки доступны для выбора языка. См. Международная и локальная поддержка.

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

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

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

from django.utils.translation import gettext_lazy as _

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

LANGUAGES_BIDI

Значение по умолчанию: Список всех кодов языков из настройки LANGUAGES, которые пишутся справа налево. Вы можете увидеть текущий список этих языков, посмотрев в django/conf/global_settings.py.

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

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

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 в обработчик электронной почты журнала, когда DEBUG равно False. См. также Настройка логирования.

Вы можете увидеть конфигурацию журнала по умолчанию, посмотрев в django/utils/log.py.

LOGGING_CONFIG

Значение по умолчанию: 'logging.config.dictConfig'

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

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

MANAGERS

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

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

END_OF_DOCUMENT_MARKER

MEDIA_ROOT

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

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

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

См. также MEDIA_URL.

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

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

MEDIA_URL

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

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

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

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

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

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

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

MEDIA_URL и STATIC_URL должны иметь разные значения. См. MEDIA_ROOT для получения более подробной информации.

MIDDLEWARE

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

Список используемого среднего программного обеспечения. См. Среднее программное обеспечение.

MIGRATION_MODULES

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

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

Пример:

{'blog': 'blog.db_migrations'}

В этом случае миграции, относящиеся к приложению blog, будут содержаться в пакете blog.db_migrations.

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

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

MONTH_DAY_FORMAT

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

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

Например, когда страница изменения списка Django admin фильтруется по дате, заголовок для данного дня отображает день и месяц. У разных языковых локалей разные форматы. Например, на английском языке США будет «1 января», а на испанском языке – «1 января».

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

См. allowed date format strings. См. также 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)

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

См. также DECIMAL_SEPARATOR, THOUSAND_SEPARATOR и USE_THOUSAND_SEPARATOR.

PREPEND_WWW

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

Включает ли добавление поддомена «www.» к URL-адресам, у которых его нет. Это используется только в том случае, если CommonMiddleware установлен (см. Среднее программное обеспечение). См. также APPEND_SLASH.

ROOT_URLCONF

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

Строка, представляющая полный путь импорта Python для вашего корневого URLconf, например "mydjangoapps.urls". Может быть переопределён на уровне каждого запроса путём установки атрибута urlconf на объект входящего HttpRequest. Подробности см. в разделе Как Django обрабатывает запрос.

SECRET_KEY

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

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

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

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

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

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

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

Запуск Django с известным SECRET_KEY снижает многие меры безопасности Django и может привести к эскалации привилегий и уязвимостям удалённого выполнения кода.

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

  • Всех сессий, если вы используете любой другой бэкенд сессий, кроме django.contrib.sessions.backends.cache, или используете стандартный get_session_auth_hash().
  • Всех сообщений, если вы используете CookieStorage или FallbackStorage.
  • Всех PasswordResetView токенов.
  • Любое использование криптографического шифрования, если не указан другой ключ.

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

Примечание

Файл по умолчанию settings.py созданный командой django-admin startproject создаёт уникальный SECRET_KEY для удобства.

SECURE_BROWSER_XSS_FILTER

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

Если True, то SecurityMiddleware устанавливает заголовок X-XSS-Protection: 1; mode=block во всех ответах, в которых его ещё нет.

SECURE_CONTENT_TYPE_NOSNIFF

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

Если True, то SecurityMiddleware устанавливает заголовок X-Content-Type-Options: nosniff во всех ответах, в которых его ещё нет.

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 добавляет директиву preload к заголовку 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 и может использоваться вашим кодом или сторонними приложениями.

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

В этой ситуации настройте свой прокси-сервер на установку пользовательского HTTP-заголовка, сообщающего Django о том, пришёл ли запрос через HTTPS, и установите SECURE_PROXY_SSL_HEADER для того, чтобы Django знал, какой заголовок искать.

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

SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

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

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

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

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

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

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

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

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

SECURE_REDIRECT_EXEMPT

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

Если путь к URL соответствует регулярному выражению в этом списке, запрос не будет перенаправлен на HTTPS. SecurityMiddleware удаляет ведущие косые черты из путей URL, поэтому шаблоны не должны их включать, например, SECURE_REDIRECT_EXEMPT = [r'^no-ssl/$', …]. Если SECURE_SSL_REDIRECT установлено в False, эта настройка не имеет эффекта.

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

Примечание

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

SERIALIZATION_MODULES

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

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

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

SERVER_EMAIL

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

Адрес электронной почты, с которого отправляются сообщения об ошибках, например, те, что отправляются адресатам в ADMINS и MANAGERS.

Почему мои письма отправляются с другого адреса?

Этот адрес используется только для сообщений об ошибках. Это не адрес, с которого отправляются обычные электронные письма с помощью send_mail(); для этого см. DEFAULT_FROM_EMAIL.

SHORT_DATE_FORMAT

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

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

См. также DATE_FORMAT и SHORT_DATETIME_FORMAT.

SHORT_DATETIME_FORMAT

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

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

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

SIGNING_BACKEND

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

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

См. также документацию по криптографической подписи.

SILENCED_SYSTEM_CHECKS

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

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

См. также документацию по системе проверки.

TEMPLATES

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

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

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

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

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

BACKEND

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

Используемый бэкенд шаблонов. Встроенные бэкенды шаблонов:

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

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

По умолчанию: ',' (Запятая)

Разделитель тысяч по умолчанию, используемый при форматировании чисел. Эта настройка используется только тогда, когда 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, то соответствующий формат, заданный локалью, имеет более высокий приоритет и будет применён вместо него. См. allowed date format strings.

См. также 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'
]

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

Когда USE_L10N установлено в True, формат, заданный локалью, имеет более высокий приоритет и будет применён вместо него.

См. также DATE_INPUT_FORMATS и DATETIME_INPUT_FORMATS.

TIME_ZONE

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

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

Примечание

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

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

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

В средах Unix (где time.tzset() реализовано), Django устанавливает переменную os.environ['TZ'] в часовой пояс, который вы указали в настройке TIME_ZONE. Таким образом, все ваши представления и модели будут автоматически работать в этом часовом поясе. Однако Django не будет устанавливать переменную окружения TZ, если вы используете ручной вариант настройки, как описано в ручной настройке настроек. Если Django не установит переменную среды TZ, вам нужно убедиться, что ваши процессы работают в правильной среде.

Примечание

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

USE_I18N

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

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

См. также 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

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

См. также 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

Логический параметр, определяющий, использовать заголовок 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

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

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

YEAR_MONTH_FORMAT

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

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

Например, когда страница списка изменений Django admin фильтруется по дате, заголовок для определённого месяца отображает месяц и год. Разные регионы имеют разные форматы. Например, в США «январь 2006», в другом регионе «2006/январь».

Обратите внимание, что если USE_L10N установлен в True, соответствующий формат региона имеет больший приоритет и используется.

См. allowed date format strings. См. также DATE_FORMAT, DATETIME_FORMAT, TIME_FORMAT и MONTH_DAY_FORMAT.

X_FRAME_OPTIONS

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

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

Auth

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

AUTHENTICATION_BACKENDS

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

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

AUTH_USER_MODEL

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

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

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

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

LOGIN_REDIRECT_URL

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

URL или имя URL-шаблона, на который перенаправляются запросы после входа, если LoginView не получает параметр next GET.

LOGIN_URL

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

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

LOGOUT_REDIRECT_URL

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

URL или имя URL-шаблона, на который перенаправляются запросы после выхода, если LogoutView не имеет атрибута next_page. Если None, перенаправления не будет, и будет отображён шаблон выхода.

PASSWORD_RESET_TIMEOUT_DAYS

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

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

Используется 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

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

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

Сообщения

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

MESSAGE_LEVEL

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

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

Важно

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

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 в HTML. Если вы укажете значение, оно будет расширять стандартное. Это означает, что вам нужно указывать только те значения, которые требуется переопределить. Более подробная информация по отображению сообщений находится выше в разделе Отображение сообщений.

Важно

Если вы переопределяете 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_COOKIE_AGE

По умолчанию: 1209600 (2 недели, в секундах)

Срок действия куки сессии в секундах.

SESSION_COOKIE_DOMAIN

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

Домен для куки сессии. Установите строку, например, "example.com", для куки между доменами или используйте None, для стандартной куки домена.

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

Этот параметр также влияет на куки, установленные django.contrib.messages.

SESSION_COOKIE_HTTPONLY

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

Использовать флаг HttpOnly для куки сессии. Если это значение True, клиентский JavaScript не сможет получить доступ к куки сессии.

HttpOnly — флаг, включённый в заголовок HTTP ответа Set-Cookie. Он относится к стандарту RFC 6265#section-4.1.2.6 для куки и может быть полезным способом снижения риска доступа клиентской стороной скрипта к защищённым данным куки.

Это делает менее тривиальным для злоумышленника превратить уязвимость XSS в полное захват сессии пользователя. Нет особых причин отключать этот параметр. Ваш код не должен считывать куки сессии из JavaScript.

SESSION_COOKIE_NAME

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

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

SESSION_COOKIE_PATH

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

Путь, установленный для куки сессии. Должен совпадать с URL-путем вашей установки Django или быть родительским этим путем.

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

SESSION_COOKIE_SAMESITE

Новое в Django 2.1.

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

Значение флага SameSite для куки сессии. Этот флаг предотвращает отправку куки в межсайтовые запросы, тем самым предотвращая атаки CSRF и делая невозможными некоторые методы кражи куки сессии.

Возможные значения параметра:

  • 'Strict': предотвращает отправку куки браузером на целевой сайт во всех межсайтовых контекстах просмотра, даже при переходе по обычной ссылке.

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

  • 'Lax' (по умолчанию): обеспечивает баланс между безопасностью и удобством использования для веб-сайтов, которые хотят сохранить сессию пользователя после того, как пользователь переходит по ссылке с внешнего сайта.

    В сценарии GitHub куки сессии будут разрешены при переходе по обычной ссылке с внешнего веб-сайта и будут заблокированы в запросах, подверженных CSRF (например, POST).

  • None: отключает флаг.

SESSION_COOKIE_SECURE

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

Использовать защищенную куки для куки сессии. Если значение True, куки будет помечена как «безопасная», что означает, что браузеры могут гарантировать, что куки отправляется только по HTTPS-соединению.

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

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

Завершать сессию при закрытии браузера пользователем. Подробнее см. Сессии длительностью работы браузера vs. постоянные сессии.

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

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

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

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

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

STATIC_ROOT

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

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

Пример: "/var/www/example.com/static/"

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

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

Это должна быть пустая целевая директория для сбора статических файлов из их постоянных расположений в одну директорию для простоты развёртывания; это не место для постоянного хранения статических файлов. Вы должны хранить их в директориях, которые будут найдены средствами поиска staticfiles, которые по умолчанию являются поддиректориями приложений и любые директории, включенные в STATICFILES_DIRS.

STATIC_URL

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

URL для использования при ссылке на статические файлы, расположенные в STATIC_ROOT.

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

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

Должен заканчиваться слешем, если задано ненулевое значение.

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

STATICFILES_DIRS

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

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

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

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

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

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

В случае если вы хотите ссылаться на файлы в одном из этих расположений с дополнительным именем пространства имён, вы можете необязательно указать префиксы в виде кортежей (prefix, path), например:

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. Если добавить его в настройку STATICFILES_FINDERS, он будет искать статические файлы в хранилище файлов по умолчанию, как определено в настройке DEFAULT_FILE_STORAGE.

Примечание

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

Поисковики статических файлов в настоящее время считаются частным интерфейсом, и этот интерфейс не документирован.

Индекс настроек ядра

Кэш

  • CACHES
  • CACHE_MIDDLEWARE_ALIAS
  • CACHE_MIDDLEWARE_KEY_PREFIX
  • CACHE_MIDDLEWARE_SECONDS

База данных

  • DATABASES
  • DATABASE_ROUTERS
  • DEFAULT_INDEX_TABLESPACE
  • DEFAULT_TABLESPACE

Отладка

  • DEBUG
  • DEBUG_PROPAGATE_EXCEPTIONS

Почта

  • ADMINS
  • DEFAULT_CHARSET
  • DEFAULT_FROM_EMAIL
  • EMAIL_BACKEND
  • EMAIL_FILE_PATH
  • EMAIL_HOST
  • EMAIL_HOST_PASSWORD
  • EMAIL_HOST_USER
  • EMAIL_PORT
  • EMAIL_SSL_CERTFILE
  • EMAIL_SSL_KEYFILE
  • EMAIL_SUBJECT_PREFIX
  • EMAIL_TIMEOUT
  • EMAIL_USE_LOCALTIME
  • EMAIL_USE_TLS
  • MANAGERS
  • SERVER_EMAIL

Отчёт об ошибках

  • DEFAULT_EXCEPTION_REPORTER_FILTER
  • IGNORABLE_404_URLS
  • MANAGERS
  • SILENCED_SYSTEM_CHECKS

Настройки загрузки файлов

  • DEFAULT_FILE_STORAGE
  • FILE_UPLOAD_HANDLERS
  • FILE_UPLOAD_MAX_MEMORY_SIZE
  • FILE_UPLOAD_PERMISSIONS
  • FILE_UPLOAD_TEMP_DIR
  • MEDIA_ROOT
  • MEDIA_URL

Формы

  • FORM_RENDERER

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

  • DATE_FORMAT
  • DATE_INPUT_FORMATS
  • DATETIME_FORMAT
  • DATETIME_INPUT_FORMATS
  • DECIMAL_SEPARATOR
  • FIRST_DAY_OF_WEEK
  • FORMAT_MODULE_PATH
  • LANGUAGE_CODE
  • LANGUAGE_COOKIE_AGE
  • LANGUAGE_COOKIE_DOMAIN
  • LANGUAGE_COOKIE_NAME
  • LANGUAGE_COOKIE_PATH
  • LANGUAGES
  • LANGUAGES_BIDI
  • LOCALE_PATHS
  • MONTH_DAY_FORMAT
  • NUMBER_GROUPING
  • SHORT_DATE_FORMAT
  • SHORT_DATETIME_FORMAT
  • THOUSAND_SEPARATOR
  • TIME_FORMAT
  • TIME_INPUT_FORMATS
  • TIME_ZONE
  • USE_I18N
  • USE_L10N
  • USE_THOUSAND_SEPARATOR
  • USE_TZ
  • YEAR_MONTH_FORMAT

HTTP

  • DATA_UPLOAD_MAX_MEMORY_SIZE
  • DATA_UPLOAD_MAX_NUMBER_FIELDS
  • DEFAULT_CHARSET
  • DEFAULT_CONTENT_TYPE
  • DISALLOWED_USER_AGENTS
  • FORCE_SCRIPT_NAME
  • INTERNAL_IPS
  • MIDDLEWARE
  • Безопасность
    • SECURE_BROWSER_XSS_FILTER
    • SECURE_CONTENT_TYPE_NOSNIFF
    • SECURE_HSTS_INCLUDE_SUBDOMAINS
    • SECURE_HSTS_PRELOAD
    • SECURE_HSTS_SECONDS
    • SECURE_PROXY_SSL_HEADER
    • SECURE_REDIRECT_EXEMPT
    • SECURE_SSL_HOST
    • SECURE_SSL_REDIRECT
  • SIGNING_BACKEND
  • USE_X_FORWARDED_HOST
  • USE_X_FORWARDED_PORT
  • WSGI_APPLICATION

Ведение журнала

  • LOGGING
  • LOGGING_CONFIG

Модели

  • ABSOLUTE_URL_OVERRIDES
  • FIXTURE_DIRS
  • INSTALLED_APPS

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

  • Защита от межсайтовых поддельных запросов
    • CSRF_COOKIE_DOMAIN
    • CSRF_COOKIE_NAME
    • CSRF_COOKIE_PATH
    • CSRF_COOKIE_SAMESITE
    • CSRF_COOKIE_SECURE
    • CSRF_FAILURE_VIEW
    • CSRF_HEADER_NAME
    • CSRF_TRUSTED_ORIGINS
    • CSRF_USE_SESSIONS
  • SECRET_KEY
  • X_FRAME_OPTIONS

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

  • DEFAULT_CHARSET
  • SERIALIZATION_MODULES

Шаблоны

  • TEMPLATES

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

  • База данных: TEST
  • TEST_NON_SERIALIZED_APPS
  • TEST_RUNNER

URL

  • APPEND_SLASH
  • PREPEND_WWW
  • ROOT_URLCONF

© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/2.2/ref/settings/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API