Spec-Zone.ru › Django 2.1

Настройки

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

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

Будьте осторожны при перезаписи настроек, особенно когда значение по умолчанию — это непустой список или словарь, например 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 кэша.

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

CSRF_COOKIE_AGE

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

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

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

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

CSRF_COOKIE_DOMAIN

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

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

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

CSRF_COOKIE_HTTPONLY

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

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

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

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

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

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

CSRF_COOKIE_NAME

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

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

CSRF_COOKIE_PATH

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

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

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

CSRF_COOKIE_SAMESITE

Новое в Django 2.1.

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

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

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

CSRF_COOKIE_SECURE

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

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

CSRF_USE_SESSIONS

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

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

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

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 («локальные» строки в pg_hba.conf). Если ваш сокет доменной области UNIX не в стандартном расположении, используйте то же значение unix_socket_directory из postgresql.conf. Если вы хотите подключиться через TCP-сокеты, установите HOST в «localhost» или «127.0.0.1» («хост» строки в 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. Чтобы избежать проблем, связанных с изменением летнего времени, не следует устанавливать этот параметр для баз данных, управляемых 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 сгенерирует случайный пароль.

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
Новое в Django 2.0.

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

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

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

DATAFILE_TMP_SIZE
Новое в Django 2.0.

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

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

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

DATAFILE_EXTSIZE
Новое в Django 2.0.

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

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

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

DATAFILE_TMP_EXTSIZE
Новое в Django 2.0.

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

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

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

DATA_UPLOAD_MAX_MEMORY_SIZE

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

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

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

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

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

DEBUG

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

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

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

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

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

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

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

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

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

И наконец, если DEBUG равно False, необходимо правильно установить настройку 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

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

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

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'

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

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 каждого приложения, в порядке поиска.

Обратите внимание, что пути должны использовать слеши Unix-формата, даже в 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() добавлять некоторые переменные в контекст шаблона.
  • Могут использовать закладки админдocs, даже если не вошли в систему как пользователь с правами администратора.
  • Отмечаются как «внутренние» (в отличие от «ВНЕШНИЕ») в электронных письмах 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')),
]

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 включён.

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://. Этот метод важен для защиты Django от CSRF и может быть использован вашим собственным кодом или сторонними приложениями.

Однако, если ваше приложение Django расположено за прокси-сервером, прокси-сервер может «поглощать» информацию о том, использует ли исходный запрос HTTPS или нет. Если соединение между прокси-сервером и Django не является HTTPS, то 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. Если 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).

Примечание

Если при переключении на True возникают бесконечные перенаправления, это, вероятно, означает, что ваш сайт работает за прокси-сервером и не может определить, какие запросы защищены, а какие нет. Ваш прокси, вероятно, устанавливает заголовок для указания защищённых запросов; вы можете исправить проблему, выяснив, какой это заголовок, и настроив параметр 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.)

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

END_OF_DOCUMENT_MARKER

См. также 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#page-7, заголовок 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. См. документацию по защите от кликджекинга.

Аутентификация

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

AUTHENTICATION_BACKENDS

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

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

AUTH_USER_MODEL

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

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

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

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

LOGIN_REDIRECT_URL

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

URL, на который перенаправляются запросы после входа в систему, когда у contrib.auth.login представления нет параметра next.

Используется, например, декоратором login_required().

Эта настройка также принимает имена URL-шаблонов, что позволяет уменьшить дублирование конфигурации, так как вам не нужно определять URL в двух местах (settings и URLconf).

LOGIN_URL

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

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

Эта настройка также принимает имена URL-шаблонов, что позволяет уменьшить дублирование конфигурации, так как вам не нужно определять URL в двух местах (settings и URLconf).

LOGOUT_REDIRECT_URL

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

URL, на который перенаправляются запросы после выхода пользователя из системы, используя LogoutView (если у представления нет аргумента next_page).

Если None, перенаправление не будет выполнено, и будет отображено представление выхода.

Эта настройка также принимает имена URL-шаблонов, что позволяет уменьшить дублирование конфигурации, так как вам не нужно определять URL в двух местах (settings и URLconf).

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 2109 для файлов cookie, и не поддерживается всеми браузерами. Однако, когда он поддерживается, он может быть полезным способом снизить риск доступа защищённых данных файлов cookie со стороны скриптов на стороне клиента.

Это делает менее тривиальным для злоумышленника эскалацию уязвимости кросс-сайтового скриптинга до полного захвата сессии пользователя. Нет много хороших причин для отключения этого флага. Ваш код не должен читать файлы cookie сессии из JavaScript.

SESSION_COOKIE_NAME

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

Имя файла cookie, используемого для сессий. Оно может быть любым (при условии, что оно отличается от других имён файлов cookie в вашем приложении).

SESSION_COOKIE_PATH

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

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

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

SESSION_COOKIE_SAMESITE

Новое в Django 2.1.

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

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

Возможные значения для настройки:

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

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

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

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

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

SESSION_COOKIE_SECURE

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

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

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

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

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

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

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

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

STATIC_ROOT

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

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

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

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

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

Это должен быть пустой целевой каталог для сбора статических файлов из их постоянных расположений в один каталог для удобства развертывания; это **не** место для постоянного хранения статических файлов. Вам следует хранить их в каталогах, которые будут найдены находок staticfiles’s finders, которые по умолчанию находятся в подкаталогах приложения 'static/' и любых каталогах, которые вы включите в 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_CHARSET
  • 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
  • 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.1/ref/settings/

Spec-Zone.ru

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