Предупреждение
Будьте осторожны при переопределении настроек, особенно если значение по умолчанию не пустой словарь или кортеж, например MIDDLEWARE_CLASSES и STATICFILES_FINDERS. Убедитесь, что настройка содержит все параметры необходимые для работы модулей Django, которые вы собираетесь использовать.
Это список основных настроек Django и их значений по умолчанию. Настройки стандартных приложений можно найти ниже.О настройках можно прочитать в разделе о настройке Django.
По умолчанию: {} (Пустой словарь)
Словарь, содержащий ключи в формате "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),
}
Заметим что название модели должно быть в нижнем регистре не смотря на реальное название класса модели.
По умолчанию: [] (Пустой список)
Кортеж содержит список людей, которые будут получать уведомления об ошибках. Если DEBUG=False и приложение вызывает исключение, Django отравит e-mail с информацией об исключении. Каждый элемент кортежа должен быть кортежем формата (Полное имя, e-mail). Например:
[('John', 'john@example.com'), ('Mary', 'mary@example.com')]
Заметим, что Django отправит email всем при возникновении ошибки. Подробную информацию смотрите в разделе Отчёты об ошибках.
По умолчанию: [] (Пустой список)
Список хостов/доменов, для которых может работать текущий сайт. Это сделано для безопасности, чтобы обезопасить от внедрения в куки или письма для сброса пароля ссылок на сторонний сайт подменив HTTP заголовок Host, что возможно при многих, казалось бы безопасных, конфигурациях сервера.
Список может содержать полное имя домена (например 'www.example.com'), тогда значение заголовка Host будет сравниваться с этим значением (проверка без учета регистра и порта). Значение для проверки и поддоменов: '.example.com', удовлетворяет example.com, www.example.com``и всем поддоменам ``example.com. Значение '*' принимает все значения, в этом случае вы сами должны проверять заголовок Host (возможно в middleware, при этом укажите его в MIDDLEWARE_CLASSES).
Django также позволяет использовать полное доменное имя (FQDN). Некоторые браузеры добавляют точку в конце заголовка Host, которую Django удаляет перед проверкой хоста.
Если заголовок Host (или X-Forwarded-Host при USE_X_FORWARDED_HOST) не совпадает ни с одним значением, метод django.http.HttpRequest.get_host() вызовет исключение SuspiciousOperation.
При DEBUG равном True и при выполнении тестов проверка отключена. Проверка обычно нужна только на боевом сервере.
Проверка выполняется только в методе get_host(), если вы используете значение заголовка Host непосредственно из request.META, проверка не будет выполнена.
По умолчанию: [] (Пустой список)
Не рекомендуется, начиная с версии 1.8: Эта настройка, как и шаблонный тег ssi, устарела и будет удалена в Django 1.10.
Вы также можете указать опцию 'allowed_include_roots' в настройке OPTIONS для бэкенда DjangoTemplates.
Кортеж, который содержит список допустимых префиксов для аргумента шаблонного тега {% ssi %}. Это мера безопасности, чтобы авторы шаблонов не имели доступа ко всем файлам.
Например, если ALLOWED_INCLUDE_ROOTS равна ('/home/html', '/var/www'), тогда {% ssi /home/html/foo.txt %} будет работать, а {% ssi /etc/passwd %} не будет.
По умолчанию: True
Если равна True и запрошенный URL не удовлетворяет ни одному URL-шаблону из URLconf и URL не заканчивается косой чертой, Django верен HTTP перенаправление на этот же URL но с косой чертой в конце. Заметим что такое перенаправление может привести к потере всех данных при POST запросе.
Настройка APPEND_SLASH используется только вместе с CommonMiddleware (смотрите Промежуточный слой (Middleware)). Смотрите PREPEND_WWW.
По умолчанию:
{
'default': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
}
}
Словарь, содержащий настройки для всех механизмов кэширования Django, используемых в проекте. Содержит псевдонимы кэшей и словарь с настройками для каждого.
CACHES должна определять кэш default и любое количество дополнительных. При определении какого либо кэша кроме кэширования в памяти, вы должны указать дополнительные параметры. Вот полный список доступных настроек.
По умолчанию: '' (Пустая строка)
Бэкенд кэширования, который используется. Django предоставляет следующие бэкенды:
Вы можете использовать сторонние бэкэнды указав в BACKEND путь для импорта класса (например, mypackage.backends.whatever.WhateverCache).
Путь для импорта функции, которая создает конечный ключ кэша из префикса, версии кэша и значения ключа. Функция по умолчанию выглядит следующим образом:
def make_key(key, key_prefix, version):
return ':'.join([key_prefix, str(version), key])
Вы можете использовать любую функцию, которая принимает аналогичные аргументы.
Подробности смотрите в разделе Кэширование.
По умолчанию: '' (Пустая строка)
Строка, которая будет автоматически добавлена (по умолчанию в начало) ко всем ключам кэша используемых Django.
Подробности смотрите в разделе Кэширование.
По умолчанию: '' (Пустая строка)
Расположение используемого кэша. Это может быть путь к каталогу при кэшировании в файле, название хоста и порт для memcache, или просто уникальное название для кэширования в памяти. Например:
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
'LOCATION': '/var/tmp/django_cache',
}
}
По умолчанию: None
Дополнительные параметры для бэкенда кэширования. Доступные параметры зависят от используемого бэкенда кэширования.
Информацию о дополнительных параметрах можно найти в описании бэкендов кэширования.
По умолчанию: 300
Время в секундах, после которого запись в кэше удаляется. Если значение равно None, записи кэша не истекает.
По умолчанию: 1
Значения по умолчанию для версии кэша.
Подробности смотрите в разделе Кэширование.
По умолчанию: default
Подключение к кэшу которое используется кэширующим промежуточным слоем.
По умолчанию: '' (Пустая строка)
Префикс, который будет добавлять для ключей в кэше, которые генерируются кэширующим промежуточным слоем. Этот префикс добавляется к значению KEY_PREFIX, а не заменяет его.
Смотрите Система кэширования Django.
По умолчанию: 600
Период в секундах на который кэшируются по умолчанию страницы при использовании кэширующего промежуточного слоя.
Смотрите Система кэширования Django.
По умолчанию: 31449600 (приблизительно 1 год, в секундах)
Время хранения CSRF куки в секундах.
Установка большего времени жизни для CSRF куки может быть необходима, если пользователь закрыл браузер, или добавил страницу в закладки, а потом загрузил страницу из кэша браузера. В без долгоживущей куки отправка форма приведет к ошибке.
Некоторые браузеры (в том числе Internet Explorer) могут запрещать использование постоянных кук, или могут содержать битый индекс кук на диске, что приведет к ошибке проверки CSRF. Установите в None, чтобы использовать CSRF куки на основе сессии и хранить значение в памяти, а не постоянном хранилище.
По умолчанию: None
Домен, используемый для CSRF кук. Может быть полезна при настройке кросс-субдоменных запросов. Настройка должна быть равна строке вида ".example.com", чтобы разрешить обрабатывать POST запросы из одного субдомена в другой.
Обратите внимание, что установка этой настройки не означает что CSRF защита Django сможет вас защитить от кросс-субдоменных атак - смотрите раздел об ограничениях CSRF.
По умолчанию: False
Использовать ли флаг HTTPOnly для CSRF куки. Если установлена в True, JavaScript в браузере не будет иметь доступ к CSRF куке.
Эта настройка может помочь обезвредить вредоносный JavaScript, который пытается обойти CSRF защиту. Если вы установили эту настройку и хотите передать CSRF токен при Ajax запросе, ваш JavaScript может получить его значение из скрытого поля формы, а не из CRSF куки.
В описании настройки SESSION_COOKIE_HTTPONLY вы можете найти подробности о HttpOnly.
По умолчанию: 'csrftoken'
Название куки, которая используется для передачи CSRF токена. Может быть каким угодно(но отличаться от названий других кук вашего приложения). Смотрите Подделка межсайтового запроса (CSRF).
По умолчанию: '/'
Путь(пер. path), который будет использоваться при установке CSRF кук. Путь должен соответствовать URL-у вашего проекта или быть родительским относительно него.
Эта настройка может быть полезна если вы используете несколько проектов на одном домене. Они могут использовать различные пути для CSRF кук и каждый проект будет видеть только свои куки.
По умолчанию: False
Указывает, использовать ли безопасные куки для CSRF. Если равна True, куки будут помечены как “безопасные”, это означает что браузер будет проверять отослана ли кука через HTTPS подключение.
По умолчанию: 'django.views.csrf.csrf_failure'
Путь к функции представления, которое будет использоваться при отклонении запроса при CSRF проверке. Функция должна иметь следующую сигнатуру:
def csrf_failure(request, reason=""):
...
где reason – короткое сообщение (предназначенное для разработчиков или логгирования, не для пользователей) описывающее причину отклонения запроса. Смотрите Подделка межсайтового запроса (CSRF).
По умолчанию: 'HTTP_X_CSRFTOKEN'
Название заголовка запроса, который используется при CSRF проверке.
Как и для других HTTP заголовков request.META, название заголовка нормализуется: все символы приводятся в верхний регистр, дефисы заменяются подчеркиванием, и добавляется префикс 'HTTP_'. Например, если клиент отправляет заголовок 'X-XSRF-TOKEN', настройка должна содержать 'HTTP_X_XSRF_TOKEN'.
По умолчанию: [] (Пустой список)
Список доменов, с которых можно отправлять небезопасные запросы (например POST). Для защищенных небезопасных запросов, CSRF проверяет, что заголовок Referer содержит значение равное заголовку Host. Это не позволяет отправлять POST запрос, например, с subdomain.example.com на api.example.com. Если вам нужны небезопасные запросы через HTTPS на разные домены, продолжая наш пример, добавьте "subdomain.example.com" в этот список. Настройка также поддерживает под-домены, вы можете добавить ".example.com", например, чтобы разрешить запросы со всех под-доменов example.com.
По умолчанию: {} (Пустой словарь)
Словарь содержащий настройки для всех баз данных, которые будут использоваться 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',
}
}
Следующие настройки могут быть использовать при подключении к различным базам данных:
По умолчанию: False
Установите в True чтобы обернуть каждое представление в транзакцию для этой базы данных. Смотрите Привязка транзакций к HTTP запросам.
По умолчанию: True
Укажите False, если хотите отключить управление транзакциями в Django и реализовать собственное.
По умолчанию: '' (Пустая строка)
Бэкенд базы данных. Django предоставляет следующие бэкенды:
Вы можете использовать сторонние бэкэнды указав в ENGINE путь для импорта (например, mypackage.backends.whatever).
В предыдущих версиях бэкенд django.db.backends.postgresql назывался django.db.backends.postgresql_psycopg2. Для обратной совместимости старое название все еще работает в новых версиях.
По умолчанию: '' (Пустая строка)
Имя хоста используемого при подключении к базе данных. Пустая строка подразумевает localhost. Не используется для SQLite.
Если значение начинается с прямого слэша ('/') и используется MySQL, MySQL будет подключаться через Unix сокет к указанному сокету. Например:
"HOST": '/var/run/mysql'
Если вы используете MySQL и значение не начинается с прямого слэша, значение будет использоваться как имя хоста.
При использовании PostgreSQL, по умолчанию (при пустом HOST) подключение к базе данных будет выполнено через UNIX domain сокет (‘local’ в pg_hba.conf). Если у вас UNIX domain сокеты находятся не в стандартном каталоге, укажите в этой настройке значение unix_socket_directory из postgresql.conf. Если вы хотите использовать TCP сокеты, укажите в HOST ‘localhost’ или ‘127.0.0.1’ (‘host’ в pg_hba.conf). В Windows необходимо указать HOST, т.к. UNIX domain сокеты не доступны.
По умолчанию: '' (Пустая строка)
Название используемой базы данных. Для SQLite – это полный путь к файлу базы данных. При указывании пути к файлу, всегда используйте обратные слэшы, даже на Windows (например, C:/homes/user/mysite/sqlite3.db).
По умолчанию: 0
Время существования подключения к базе данных. При 0 подключение будет закрываться после каждого запроса — как это всегда работало в Django. При None подключение никогда не будет закрываться.
По умолчанию: {} (Пустой словарь)
Дополнительные параметры используемые при подключении к базе данных. Доступные параметры зависят от используемого бэкенда.
Информацию о дополнительных параметрах можно найти в описании Бэкендов базы данных.
По умолчанию: '' (Пустая строка)
Пароль, используемый при подключении к базе данных. Не используется для SQLite.
По умолчанию: '' (Пустая строка)
Порт, используемый при подключении к базе данных. Пустая строка подразумевает порт по умолчанию. Не используется для SQLite.
По умолчанию: None
Строка, указывающая в каком часовом поясе сохранены значения даты и времени в базе данных (предполагается, что она не поддерживает сохранение часовых поясов) или None. Принимается значение аналогичное настройке :setting:`TIME_ZONE.
Настройка позволяет использовать сторонние базы данных, которые сохраняют дату и время в локальном часовом поясе, а не UTC. Чтобы избежать проблем с DST(переход на летнее/зимнее время), вы не должны использовать эту настройку для баз данных, которые полностью управляются Django.
Указав эту опцию, вам необходимо установить pytz.
Если USE_TZ равна True и база данных не поддерживает часовые пояса (например, SQLite, MySQL, Oracle), Django читает и пишет даты с часовым поясом, указанным в этой настройке, или в UTC, если настройка не указана.
Если USE_TZ равна True и база данных поддерживает часовые пояса (например, PostgreSQL), вы получите ошибку, если укажите эту настройку.
Перед Django 1.9 бэкенд базы данных PostgreSQL принимал недокументированную опцию TIME_ZONE, которая приводила к искажению данных.
Если USE_TZ равна False, эта опция должна быть пустой.
По умолчанию: '' (Пустая строка)
Имя пользователя используемое при подключении к базе данных. Не используется для SQLite.
По умолчанию: {}
Словарь с настройками для тестовой базы данных. Больше о создании и использовании тестовой базы данных смотрите в Тестовая база данных.
Можно использовать следующие настройки:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'USER': 'mydatabaseuser',
'NAME': 'mydatabase',
'TEST': {
'NAME': 'mytestdatabase',
},
},
}
Доступны следующие ключи в словаре TEST:
По умолчанию: None
Кодировка(пер. character set encoding) используемая при создании тестовой базы данных. Значение передается непосредственно в базу данных, так что его формат зависит от используемой базы данных.
Поддерживается PostgreSQL (postgresql) и MySQL (mysql) бэкендами.
По умолчанию: None
Порядок сортировки(пер. collation order), используемый при создании тестовой базы данных. Значение передается непосредственно в базу данных, так что его формат зависит от используемой базы данных.
Поддерживается только mysql (подробности смотрите в руководстве MySQL).
По умолчанию: ['default'] для всех используемых баз данных кроме default, которая не имеет зависимостей.
Порядок создания баз данных. Подробности смотрите в разделе об управлении созданием тестовых баз данных.
По умолчанию: None
Псевдоним базы данных, которую должна отображать конфигурируемая база данных при тестировании.
Эта настройка предназначена для тестирования master/slave конфигурации нескольких баз данных. Подробности смотрите в разделе о тестировании master/slave конфигурации.
По умолчанию: None
Название базы данных используемой при тестировании.
Если указано значение по умолчанию (None) для SQLite, будет использована база данных в памяти. Для всех остальных баз данных будет использоваться 'test_' + DATABASE_NAME.
Смотрите Тестовая база данных.
Указывает сериализировать ли содержимое базы данных в JSON в памяти перед запуском тестов (используется для восстановления состояния базы данных между тестами, если не поддерживаются транзакции). Используется стандартным механизмом выполнения тестов Django. Вы можете указать False, чтобы ускорить выполнение тестов, если у вас нет тестов с serialized_rollback=True.
По умолчанию: True
Эта настройка используется Oracle.
Если равно False, табличное пространство(пер. tablespace) не будет автоматически создано в начале тестов и не будет удалено после выполнения тестов.
По умолчанию: True
Эта настройка используется Oracle.
При False тестовый пользователь не будет создаваться на время выполнения тестов.
По умолчанию: None
Эта настройка используется Oracle.
Имя пользователя, которое будет использоваться Oracle при подключении к базе данных во время выполнения тестов. Если не указано, Django будет использовать 'test_' + USER.
По умолчанию: None
Эта настройка используется Oracle.
Пароль, который будет использоваться Oracle при подключении к базе данных во время выполнения тестов. Если значение не установлено Django будет использовать “захардкоденное” значение по умолчанию.
По умолчанию: None
Эта настройка используется Oracle.
Название табличного пространства(пер. tablespace), которое будет использоваться во время выполнения тестов. Если не указано, Django будет использовать 'test_' + USER.
Ранее использовалось 'test_' + NAME, если значение не было указано.
По умолчанию: None
Эта настройка используется Oracle.
Название временного табличного пространства(пер. temporary tablespace), которое будет использоваться во время выполнения тестов. Если не указано, Django будет использовать 'test_' + USER + '_temp'.
Ранее использовалось 'test_' + NAME + '_temp', если значение не было указано.
По умолчанию: None
Эта настройка используется Oracle.
Название для файла с данными(datafile), который будет использоваться для TBLSPACE. Если не указан, Django будет использовать TBLSPACE + '.dbf'.
По умолчанию: None
Эта настройка используется Oracle.
Название для файла с данными(datafile), который будет использоваться для TBLSPACE_TMP. Если не указан, Django будет использовать TBLSPACE_TMP + '.dbf'.
По умолчанию: '500M'
Ранее использовалось значение 200M и его нельзя было настроить.
Эта настройка используется Oracle.
Максимальный размер DATAFILE.
По умолчанию: '500M'
Ранее использовалось значение 200M и его нельзя было настроить.
Эта настройка используется Oracle.
Максимальный размер DATAFILE_TMP.
По умолчанию: [] (Пустой список)
Список маршрутизаторов(пер. routers), которые будут использоваться для определения какую базу данных использовать при выполнении запроса.
Подробности смотрите в разделе Автоматическая маршрутизация при использовании нескольких баз данных.
По умолчанию: 'N j, Y' (например, Feb. 4, 2003)
Формат по умолчанию для отображение значений полей даты в любой части системы. Заметим, если USE_L10N равна True, будет использоваться формат даты текущей локали, если он указан в файлах локализации. Формат значения смотрите в описании фильтра date.
Смотрите DATETIME_FORMAT, TIME_FORMAT и SHORT_DATE_FORMAT.
По умолчанию:
[
'%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', # '2006-10-25', '10/25/2006', '10/25/06'
'%b %d %Y', '%b %d, %Y', # 'Oct 25 2006', 'Oct 25, 2006'
'%d %b %Y', '%d %b, %Y', # '25 Oct 2006', '25 Oct, 2006'
'%B %d %Y', '%B %d, %Y', # 'October 25 2006', 'October 25, 2006'
'%d %B %Y', '%d %B, %Y', # '25 October 2006', '25 October, 2006'
]
Список, содержащий форматы даты, которые доступны в поле даты формы. Форматы проверяются в указанном порядке, используется первый подходящий. Заметим что эти строки используют формат datetime Python, а не формат шаблонного тега date.
При USE_L10N равном True, формат даты текущей локали имеет больший приоритет.
Смотрите DATETIME_INPUT_FORMATS и TIME_INPUT_FORMATS.
По умолчанию: 'N j, Y, P' (например Feb. 4, 2003, 4 p.m.)
Формат по умолчанию для отображение значений полей даты и времени в любой части системы. Заметим, если USE_L10N равна True, будет использоваться формат даты текущей локали, если он указан в файлах локализации. Формат значения смотрите в описании фильтра date.
Смотрите DATETIME_FORMAT, TIME_FORMAT и SHORT_DATETIME_FORMAT.
По умолчанию:
[
'%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 Python, а не формат шаблонного тега date.
При USE_L10N равном True, формат даты текущей локали имеет больший приоритет.
Смотрите DATE_INPUT_FORMATS и TIME_INPUT_FORMATS.
По умолчанию: False
Включает/выключает режим отладки.
Никогда не включайте DEBUG на “боевом” сервере.
Вы уловили это? НИКОГДА не устанавливайте проект на “боевом” сервере с включенным DEBUG.
Одна из особенностей режима отладки – отображение подробной страницы с ошибкой. Если ваше приложение вызывает исключение при DEBUG равном True, Django покажет подробную отладочную информацию включая различные мета-данные об окружении, такие как настройки проекта (из settings.py).
В целях безопасности Django не включает небезопасные настройки, такие как SECRET_KEY. В том числе не отображаются настройки, которые содержат в названии следующее:
Заметим, учитывается частичное совпадение. 'PASS' учитывает PASSWORD, также как и 'TOKEN' учитывает TOKENIZED и так далее.
Помните, что в любом случае страница с ошибкой будет содержать небезопасные данные при включенном режиме отладки. Пути к различным файлам, настройки и другая информация будет доступна для желающих атаковать ваш сайт.
Также при включенном DEBUG, Django запоминает каждый выполненный SQL запрос. Это полезно при отладке, но на сервере может занять много памяти.
Также при DEBUG равном False, необходимо правильно указать ALLOWED_HOSTS. Иначе все запросы будут возвращать “Bad Request (400)”.
Примечание
По умолчанию файл settings.py, созданный django-admin startproject, содержит DEBUG = True.
По умолчанию: False
При True стандартная обработка исключений в Django не будет использована и исключение будет “передано далее”. Это может быть полезным при разработке но не должно быть использовано на “боевом” сервере.
По умолчанию: '.' (Точка)
Десятичный разделитель, который используется при форматировании десятичных чисел.
Заметим, при USE_L10N равном True, будет использовано значение из настроек локали.
Смотрите NUMBER_GROUPING, THOUSAND_SEPARATOR и USE_THOUSAND_SEPARATOR.
По умолчанию: 'utf-8'
Кодировка, которая используется по умолчанию для объектов HttpResponse если MIME-тип не указан явно. Используется вместе с DEFAULT_CONTENT_TYPE при установке заголовка Content-Type.
По умолчанию: 'text/html'
Тип содержимого(пер. content type) , который используется по умолчанию для объектов HttpResponse если MIME-тип не указан явно. Используется вместе с DEFAULT_CHARSET при установке заголовка Content-Type.
По умолчанию: django.views.debug.SafeExceptionReporterFilter
Класс фильтра отчета об ошибке, который будет использоваться если не установлен другой для объекта HttpRequest. Смотрите Фильтрация отчетов об ошибке.
По умолчанию: django.core.files.storage.FileSystemStorage
Класс хранилища файлов(пер. file storage), который будет использоваться по умолчанию для всех операций с файлами, если не используется конкретное файловое хранилище. Смотрите Управление файлами.
По умолчанию: 'webmaster@localhost'
Email, используемый при отправки различных автоматических рассылок от имени менеджера сайта. Не включает письма с ошибками на сайта для ADMINS и MANAGERS. Для таких писем используйте SERVER_EMAIL.
По умолчанию: '' (Пустая строка)
Табличное пространство(пер. tablespace) используемое для индексов полей, которые не указывают явно значение. Используется если база данных поддерживает их (смотрите Табличные пространства).
По умолчанию: '' (Пустая строка)
Табличное пространство(пер. tablespace) используемое для моделей, которые не указывают явно значение. Используется если база данных поддерживает их (смотрите Табличные пространства).
По умолчанию: [] (Пустой список)
Список скомпилированных регулярных выражений, которые используются при фильтрации заголовка User-Agent для запрета доступа ко всем страницам сайта. Используйте для блокировки роботов/сканеров. Используется только при включенном CommonMiddleware (смотрите Промежуточный слой (Middleware)).
По умолчанию: 'django.core.mail.backends.smtp.EmailBackend'
Бэкенд, используемый для отправки электронных писем. Список доступных бэкендов смотрите в разделе Отправка электронных писем.
По умолчанию: Не определена
Каталог, используемый файловым бэкендом для отправки электронных писем.
По умолчанию: 'localhost'
Имя хоста используемое для отправки электронных писем.
Смотрите EMAIL_PORT.
По умолчанию: '' (Пустая строка)
Пароль для подключения к SMTP сервера, который указан в EMAIL_HOST. Эта настройка используется вместе с EMAIL_HOST_USER для авторизации при подключении к SMTP серверу. Если эти настройки пустые, Django будет подключаться без авторизации.
Смотрите EMAIL_HOST_USER.
По умолчанию: '' (Пустая строка)
Имя пользователя используемое при подключении к SMTP серверу указанному в EMAIL_HOST. Если не указано, Django не будет выполнять авторизацию.
Смотрите EMAIL_HOST_PASSWORD.
По умолчанию: 25
Порт, используемый при подключении к SMTP серверу указанному в EMAIL_HOST.
По умолчанию: '[Django] '
Префикс добавляемый к теме электронного письма отправленного функциями django.core.mail.mail_admins или django.core.mail.mail_managers. Возможно, вы захотите добавить пробелы в конце.
По умолчанию: False
Указывает использовать ли TLS (защищенное) соединение с SMTP сервером. Используется для явного использования TLS подключения, обычно к 587 порту. Если подключение не работает, используйте неявное TLS подключение указав EMAIL_USE_SSL.
По умолчанию: False
Указывает использовать ли неявное TLS (защищенное) соединение с SMTP сервером. В документации этот тип TLS подключения обычно называется SSL. По умолчанию использует 465 порт. Если подключение не работает, используйте явно TLS подключение указав EMAIL_USE_TLS.
Обратите внимание, EMAIL_USE_TLS/EMAIL_USE_SSL взаимоисключающие, только одна настройка может быть True.
По умолчанию: None
Если EMAIL_USE_SSL или EMAIL_USE_TLS равна True, вы можете указать путь к сертификату в PEM-формате, который будет использоваться при создании SSL подключения.
По умолчанию: None
Если EMAIL_USE_SSL или EMAIL_USE_TLS равна True, вы можете указать путь к приватному ключу в формате PEM, который будет использоваться при создании SSL подключения.
Обратите внимание, никакой проверки сертификата не выполняется при указании настроек EMAIL_SSL_CERTFILE и EMAIL_SSL_KEYFILE. Они передаются в SSL подключение. Обратитесь к документации функции ssl.wrap_socket() Python, чтобы узнать подробности о работе с сертификатом и приватным ключем.
По умолчанию: None
Указывает таймаут в секундах для блокирующих операций, таких как попытка подключения.
По умолчанию: 'utf-8'
Кодировка используемая при декодировании файлов прочитанных с файловой системы. Это включает файлы шаблонов и инициализирующие SQL файлы.
По умолчанию:
["django.core.files.uploadhandler.MemoryFileUploadHandler",
"django.core.files.uploadhandler.TemporaryFileUploadHandler"]
Список обработчиков загрузки файлов. Можно изменить или полностью переопределить процесс загрузки в Django.
Подробности смотрите Управление файлами.
По умолчанию: 2621440 (то есть 2.5 MB).
Максимальный размер (в байтах) загруженного файла, который будет храниться в памяти, а не сохраняться в файловой системе. Подробности смотрите Управление файлами.
По умолчанию: None
Права доступа в цифровом виде для каталогов, которые будут созданы при сохранении загруженных файлов.
Также используется для каталогов, которые будут созданы при сборке статических файлов командой collectstatic. Подробности смотрите в collectstatic.
Используется аналогично настройке FILE_UPLOAD_PERMISSIONS.
По умолчанию: None
Права доступа в цифровом виде (то есть 0644) которые назначаются новым загруженным файлам. Подробную информацию смотрите в описании функции os.chmod().
Если значение не указано или равно None, поведение будет зависеть от операционной системы. На большинстве платформ временные файлы создаются с правами 0o600, а файлы, сохраненный из памяти, будут использовать umask системы.
Для безопасности эти права не применяются для временных файлов, которые сохраняются в FILE_UPLOAD_TEMP_DIR.
Также используется для файлов, которые будут созданы при сборке статических файлов командой collectstatic. Подробности смотрите в collectstatic.
Предупреждение
Это значение всегда должно начинаться с 0.
Если вы не знакомы с правами доступа, обратите внимание что 0 очень важен: он означает восьмеричное число, которыми определяются права доступа. Если вы будете использовать 644, все будет работать не правильно.
По умолчанию: None
Каталог, используемый для загрузки временных файлов (обычно файлы больше FILE_UPLOAD_MAX_MEMORY_SIZE). Если None, Django будет использовать стандартный каталог временных файлов используемой операционной системы. Например, для *nix-систем это /tmp на *nix-системах.
Подробности смотрите Управление файлами.
По умолчанию: 0 (Воскресение)
Число, указывающее первый день недели. Используется при отображении календаря. Это значение используется если не найдено значение используемой локали.
Значение должно быть целым числом от 0 до 6, где 0 означает Воскресение, 1 означает Понедельник.
По умолчанию: [] (Пустой список)
Список каталогов, в которых происходит поиск фикстур в дополнение к каталогам fixtures в приложениях.
Заметим, что эти пути должны использовать прямые слэши, то есть быть в Unix-стиле, а не Windows.
Смотрите Создание начальных данных с помощью файлов(fixtures) и Загрузка фикстур.
По умолчанию: None
Если не None, будет использоваться как значение переменной окружения SCRIPT_NAME при HTTP запросе. Это значение может использоваться для переопределения значения переменной SCRIPT_NAME предоставленного сервером.
По умолчанию: None
Полный Python путь для импорта 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, TIME_FORMAT, DATETIME_FORMAT, YEAR_MONTH_FORMAT, MONTH_DAY_FORMAT, SHORT_DATE_FORMAT, SHORT_DATETIME_FORMAT, FIRST_DAY_OF_WEEK, DECIMAL_SEPARATOR, THOUSAND_SEPARATOR и NUMBER_GROUPING.
По умолчанию: [] (Пустой список)
Список скомпилированных регулярных выражений, которые соответствуют URL-ам, для которых не должны отсылаться письма о 404 ошибках (смотрите Отчёты об ошибках). Регулярное выражение проверяет полный адрес запроса с учетом всех GET аргументов. Вы можете использовать эту настройку если ваш проект не содержит обычно запрашиваемые файлы, такие как favicon.ico или robots.txt, или если кто-то натравил на ваш сайт скрипт(пер. hammered by script kiddies).
Используется при включенном BrokenLinkEmailsMiddleware (смотрите Промежуточный слой (Middleware)).
По умолчанию: [] (Пустой список)
Список строк, который указывают не все приложения Django, используемые в проекте. Каждая строка должна быть полным Python путем к:
классу настройки приложения(рекомендуется), или
пакету с приложением.
Больше о настройке приложений.
Используйте реестр приложений
Ваш код не должен использовать INSTALLED_APPS. Вместо этого используйте django.apps.apps.
Названия приложения и метки(labels) должны быть уникальны в INSTALLED_APPS
Названия приложений — Python путь к пакету приложения — должны быть уникальны. Нельзя подключить одно приложение дважды, разве что продублировав код с другим названием.
Короткие названия приложения — по умолчанию последняя часть названия приложения — должны быть так же уникальны. Например, можно использовать вместе django.contrib.auth и myproject.auth. Однако, необходимо указать label.
Эти правила распространяются на все приложения в INSTALLED_APPS, как на классы настройки приложений, так и на пакеты приложений.
Если несколько приложений содержат разные версии одних и тех же ресурсов (шаблоны, статические файлы, команды, файлы перевода), будут использоваться ресурсы из приложения, которое указано выше в INSTALLED_APPS.
По умолчанию: [] (Пустой список)
Список IP адресов, в виде строк, которые:
Позволяет контекстному процессору debug() добавить некоторые переменные в контекст шаблона.
Позволяет использовать admindocs bookmarklets, даже без авторизации как пользователь-администратор.
Помечаются как “внутренние” (вместо “EXTERNAL”) в письмах, отправленных через AdminEmailHandler.
По умолчанию: 'en-us'
Код используемого в проекте языка. Должен соответствовать формату сокращений названий языков. Например, U.S. English обозначается как "en-us". Смотрите список кодов языков и Интернационализация и локализация.
Необходимо включить для использования этой настройки USE_I18N.
Настройка используется в двух случаях:
Если мидлвар для определения локали отключен, она указывает какой язык использовать для всех пользователей.
При включенном мидлваре, указывает язык по умолчанию, если язык пользователя не может быть определен или не доступен в проекте. Также предоставляет перевод по умолчанию, если перевод текста на язык пользователя не был найден.
Был добавлен перевод по умолчанию, если перевод для текста не был найден.
Подробности смотрите в Как Django определяет языковую настройку.
По умолчанию: None (истекает при закрытии браузера)
Время хранения куки локализации в секундах.
По умолчанию: None
Домен, используемый для кук локализации. Используйте строку, например, ".example.com" (обратите внимание на точку в начале!), для кросдоменних кук, или используйте None для стандартного домена.
Осторожно меняйте эту настройку на боевом сайте. Если вы измените ее, чтобы разрешить кросс-доменные куки на сайте, старые куки будут использовать старое значение домена. Это приведет к тому, что пользователи не смогут сменить текущую локаль, пока куки не устареют. Единственный вариант – поменять название куки(через настройку LANGUAGE_COOKIE_NAME) и добавить мидлвар, который скопирует значение старой куки в новую и удалит старую куку.
По умолчанию: 'django_language'
Название куки которая используется для хранения текущего языка. Может принимать какое угодно значение (но не должно совпадать с другими куками проекта). Смотрите Интернационализация и локализация.
По умолчанию: /
Путь(пер. path), который будет использоваться при установке кук локализации. Путь должен соответствовать URL-у вашего проекта или быть родительским относительно него.
Эта настройка может быть полезна если вы используете несколько проектов на одном домене. Они могут использовать различные пути для кук и каждый проект будет видеть только свои куки локализации.
Осторожно меняйте эту настройку на боевом сайте. Если вы измените ее, чтобы разрешить кросс-доменные куки на сайте, старые куки будут использовать старое значение домена. Это приведет к тому, что пользователи не смогут сменить текущую локаль, пока куки не устареют. Единственный вариант – поменять название куки(через настройку LANGUAGE_COOKIE_NAME) и добавить мидлвар, который скопирует значение старой куки в новую и удалит старую куку.
По умолчанию: список всех доступных языков. Этот список постоянно растет, поэтому мы не приводим здесь значение. Текущий список вы можете посмотреть в файле django/conf/global_settings.py (или посмотреть исходный код онлайн).
Список содержит двухэлементные кортежи формата (код языка, язык), например ('ja', 'Japanese'). Эта настройка указывает доступные для выбора языки. Смотрите Интернационализация и локализация.
В большинстве случаев значение по умолчанию подойдет для большинства проектов. Используйте это значение, если хотите ограничить доступные для проекта языки.
Если вы меняете LANGUAGES, можете определить названия языка как переводимую строку, используя функцию ugettext_lazy().
Вот пример настроек:
from django.utils.translation import ugettext_lazy as _
LANGUAGES = [
('de', _('German')),
('en', _('English')),
]
По умолчанию: [] (Пустой список)
Список каталогов, в которых Django ищет файлы перевода. Смотрите Как Django находит переводы.
Например:
LOCALE_PATHS = [
'/home/www/project/common_files/locale',
'/var/local/translations/locale',
]
Django в каждом каталоге ищет подкаталог <locale_code>/LC_MESSAGES с файлами перевода.
По умолчанию: Словарь конфигурации логгирования.
Структура данных, которая определяет конфигурацию логгирования. Содержимое будет передано в метод настройки логгирования указанный в LOGGING_CONFIG.
Настройки по умолчанию все HTTP 500 ошибки отправляются в email обработчик при DEBUG равном False. Смотрите также Настройка логгирования.
Стандартные настройки логгирования можно найти в файле django/utils/log.py (или посмотреть онлайн).
По умолчанию: 'logging.config.dictConfig'
Путь для импорта функции, которая используется для настройки логгирования в проекте. Указывает на метод объекта Python dictConfig.
Если LOGGING_CONFIG равно None, настройки логгирования не будет выполняться.
По умолчанию: [] (Пустой список)
Список по формату аналогичен ADMINS, который определяет кто получает оповещение о “сломанных” ссылках при включенном BrokenLinkEmailsMiddleware.
По умолчанию: '' (Пустая строка)
Абсолютный путь к каталогу, в котором хранятся медиа-файлы, используется для работы с файлами.
Например: "/var/www/example.com/media/"
Смотрите MEDIA_URL.
Предупреждение
MEDIA_ROOT и STATIC_ROOT должны отличаться. Когда STATIC_ROOT только добавили, нормальным было указать MEDIA_ROOT на те самые файлы, однако, т.к. это потенциально не безопасно, добавлена проверка этих значений.
По умолчанию: '' (Пустая строка)
URL который указывает на каталог MEDIA_ROOT, используется для работы с файлами. Должен оканчиваться слешом при не пустом значении. Вам необходимо настроить раздачу этих файлов как dev-сервером, так и “боевым”.
Если вы хотите использовать {{ MEDIA_URL }} в шаблонах, добавьте 'django.template.context_processors.media' в опцию 'context_processors' настройки TEMPLATES.
Например: "http://media.example.com/"
Предупреждение
Принимать загруженный контент от непроверенных пользователей – опасно! Подробности смотрите в Контент, загружаемый пользователями.
Предупреждение
MEDIA_URL и STATIC_URL должны отличаться. Подробности смотрите в описании MEDIA_ROOT.
По умолчанию:
['django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware']
Список, который состоит из путей для импорта используемых функциональных слоев(пер. middleware). Смотрите Промежуточный слой (Middleware).
По умолчанию:
{} # empty dictionary
Словарь, который указывает где искать миграции для приложений.По умолчанию ничего не содержит и миграцию ищутся в пакете migrations приложения.
Например:
{'blog': 'blog.db_migrations'}
В этом примере миграции для приложения blog содержатся в пакете blog.db_migrations.
Если вы укажите аргумент app_label, makemigrations создаст этот пакет, если он не существует.
Если указать None для приложения, Django будет считать это приложение приложением без миграций, даже если оно содержит модуль migrations. Это можно использовать, например, в тестовых настройках, чтобы пропустить выполнение миграций при создании тестовой базы данных (таблицы все равно будут созданы для моделей приложения). Если такой подход использовать в настройках проекта, миграции необходимо выполнять с опцией --run-syncdb, чтобы создать таблицы для моделей приложения.
По умолчанию: 'F j'
Формат по умолчанию для полей даты при отображении значении в интерфейсе администратора Django и, возможно, в других частях системы в случае, если отображается только месяц и день.
Например, если отфильтровать страницу списка объектов в интерфейсе администратора по дате, название страницы будет содержать месяц и день. Различные локали содержат различные форматы даты. Например, для U.S. English будет отображаться “January 1,” для Spanish - “1 Enero.”
Заметим, при USE_L10N равном True, значение текущей локали имеет больший приоритет и будет использоваться вместо настройки.
Смотрите доступные форматы. Также смотрите DATE_FORMAT, DATETIME_FORMAT, TIME_FORMAT и YEAR_MONTH_FORMAT.
По умолчанию: 0
Количество цифр для группирования в целочисленной части числа.
Используется для разделителя тысяч при отображении чисел. При 0, цифры не будут группироваться. Если значение больше 0, THOUSAND_SEPARATOR будет использоваться как разделитель.
Заметим, при USE_L10N равном True, будет использовано значение из настроек локали.
Смотрите DECIMAL_SEPARATOR, THOUSAND_SEPARATOR и USE_THOUSAND_SEPARATOR.
По умолчанию: False
Указывает добавлять ли поддомен “www.” к URL-у, если он не содержит его. Работает только при использовании CommonMiddleware (смотрите Промежуточный слой (Middleware)). Смотрите APPEND_SLASH.
По умолчанию: Не определена
Путь для импорта Python-модуля с главной конфигурацией URL-ов. Например: "mydjangoapps.urls". Может быть переопределена для конкретного запроса изменением атрибута urlconf объекта HttpRequest. Подробности смотрите в Как Django обрабатывает запрос.
По умолчанию: '' (Пустая строка)
Секретный ключ. Используется для криптографической подписи, должен быть случайным и сложным для подбора.
django-admin startproject автоматом создает случайный SECRET_KEY для нового проекта.
Django не запустится, если SECRET_KEY не указан.
Предупреждение
Храните это значение в секрете.
Если SECRET_KEY станет кому-то известен, это позволит обойти различную защиту в Django.
Секретный ключ используется для:
Всех сессий при использовании любого бэкенда кроме django.contrib.sessions.backends.cache, или при использовании SessionAuthenticationMiddleware с get_session_auth_hash().
Всех сообщений, если вы используете CookieStorage или FallbackStorage.
Токены password_reset().
Для криптографической подписи, если не указан другой ключ.
Если вы поменяете секретный ключ, все предыдущие значения будут неверны. Секретный ключ не используется для хранения пароля пользователей и при смене они не будут сломаны.
Примечание
По умолчанию файл settings.py, созданный django-admin startproject, создает уникальный SECRET_KEY.
По умолчанию: False
При True SecurityMiddleware добавит заголовок X-XSS-Protection: 1; mode=block для всех ответов, которые еще не содержат его.
По умолчанию: False
При True SecurityMiddleware добавит заголовок X-Content-Type-Options: nosniff для всех ответов, которые еще не содержат его.
По умолчанию: False
При True SecurityMiddleware добавляет тег includeSubDomains в заголовок HTTP Strict Transport Security. Не имеет эффекта, если не указать в SECURE_HSTS_SECONDS значение отличное от ноля.
Предупреждение
Неправильная установка этих настроек может необратимо (при определенном значении SECURE_HSTS_SECONDS) сломать ваш сайт. Для начала ознакомьтесь с HTTP Strict Transport Security.
По умолчанию: 0
Если указать не ноль, SecurityMiddleware добавит заголовок HTTP Strict Transport Security для всех ответов, которые еще не содержат его.
Предупреждение
Неправильная установка этих настроек может необратимо (в течение некоторого времени) сломать ваш сайт. Для начала ознакомьтесь с HTTP Strict Transport Security.
По умолчанию: None
Кортеж из комбинаций HTTP заголовка/значения, которые определяют зашифрован ли запрос. Влияет на работу метода is_secure() объекта запроса.
Здесь требуются пояснения. По умолчанию, is_secure() определяет безопасен ли запрошенный URL(по наличию “https://”). Это важно для CSRF защиты, вы также можете использовать эту настройку.
Если приложение Django находится за прокси, который использует не HTTPS соединение к проекту, будут утеряны данные о том, что запрос зашифрованный. В этом случае is_secure() всегда будет возвращать False – даже для запросов, сделанных через HTTPS.
В таком случае вам необходимо настроить прокси таким образом, чтобы добавлялись специальные HTTP заголовки для защищенных запросов, которые вы укажете в SECURE_PROXY_SSL_HEADER чтобы Django мог определить является запрос защищенным.
Необходимо указать кортеж из двух элементов – название заголовка и значение. Например:
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
В этом примере мы указываем Django, что можно доверять заголовку X-Forwarded-Proto пришедшему от прокси, и при значении 'https' считать запрос защищенным (то есть он выполнен через HTTPS). Очевидно, что вы должны использовать эту настройку только если контролируете прокси-сервер и доверяете ему.
Название заголовка должно быть в формате, используемом request.META – в верхнем регистре и начинаться с HTTP_. (Помните, Django автоматически добавляет 'HTTP_' в начале к названию x-заголовка перед добавлением его в request.META.)
Предупреждение
Возможно, вы создадите уязвимость, если будете использовать эту настройку, не понимая как все работает. И если забудете указать ее тогда, когда это следует сделать. Будьте осторожны.
Убедитесь что ВСЕ следующие условия верны, перед тем как использовать эту настройку(предполагая, что используется значение из примера выше):
Проект находится за прокси-сервером.
Прокси удаляет ‘X-Forwarded-Proto’ заголовок из приходящих запросов. Другими словами, пользователь не сможет подделать защищенный запрос указав заголовок.
Прокси устанавливает заголовок ‘X-Forwarded-Proto’ и передает Django, но только для запросов через HTTPS.
Если одно из условий не соблюдено, установите значение настройки в None и найдите другой способ определить, используется ли HTTPS, возможно через функциональный слой(пер. middleware).
По умолчанию: [] (Пустой список)
Если URL удовлетворяет регулярному выражению из этого списка, запрос не будет перенаправлен на HTTPS. Если SECURE_SSL_REDIRECT равна False, эта настройка не имеет эффекта.
По умолчанию: None
Если указать строку (например secure.example.com), все SSL будут отправлены на указанный домен, а не запрошенный домен (например www.example.com). Если SECURE_SSL_REDIRECT равна False, эта настройка не имеет эффекта.
По умолчанию: False.
При True SecurityMiddleware перенаправляет все не-HTTPS запросы на HTTPS (кроме тех URL-ов, которые удовлетворяют регулярному выржению из SECURE_REDIRECT_EXEMPT).
Примечание
Если при указании True происходит бесконечное перенаправление при запросе, возможно ваш сайт находится за прокси и не может определить защищен запрос или нет. Скорее всего прокси устанавливает заголовок, который указывает защищен ли запрос. Вы можете указать этот заголовок в настройке SECURE_PROXY_SSL_HEADER, что исправит проблему.
По умолчанию: Не определена.
Словарь, указывающий модули, реализующие различные форматы сериализации данных(пер. serializer) (строка с путем для импорта). Например, чтобы определить сериализатор для YAML формата, используйте:
SERIALIZATION_MODULES = {'yaml': 'path.to.yaml_serializer'}
По умолчанию: 'root@localhost'
Email-адрес, используемый в качестве адреса отправителя, для писем с ошибками, которые отсылаются на адреса, указание в ADMINS и MANAGERS.
Почему мои письма отправляются с разных адресов?
Этот адрес используется только для писем с ошибками. Этот адрес не не используется для отправки обычных писем через send_mail(). Для них используется значение DEFAULT_FROM_EMAIL.
По умолчанию: m/d/Y (например 12/31/2003)
Формат, используемый при отображении даты в шаблоне. . Заметим, если USE_L10N равна True, будет использоваться формат даты текущей локали, если он указан в файлах локализации. Формат значения смотрите в описании фильтра date.
Смотрите DATE_FORMAT и SHORT_DATETIME_FORMAT.
По умолчанию: m/d/Y P (например 12/31/2003 4 p.m.)
Формат, используемый при отображении даты-времени в шаблоне. . Заметим, если USE_L10N равна True, будет использоваться формат даты текущей локали, если он указан в файлах локализации. Формат значения смотрите в описании фильтра date.
Смотрите также DATE_FORMAT и SHORT_DATE_FORMAT.
По умолчанию: 'django.core.signing.TimestampSigner'
Бэкенд, используемый для подписанных кук и других данных.
Смотрите Криптографическая подпись.
По умолчанию: [] (Пустой список)
Список кодов сообщений, генерируемые приложением проверки проекта (например, ["models.W001"]), которые вы хотите проигнорировать. Игнорируемые приложения не будут выводится в консоль.
В предыдущих версиях проигнорированные сообщения уровня ERROR и выше выводились в консоль.
Смотрите System check framework.
По умолчанию: [] (Пустой список)
Список настроек для шаблонизаторов, которые используются Django. Каждый элемент – это словарь с параметрами настройки шаблонизатора.
Вот небольшой пример как указать Django загружать шаблоны из каталогов templates, которые находятся в установленных приложениях:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'APP_DIRS': True,
},
]
Следующие опции доступны для всех бэкендов.
По умолчанию: Не определена
Бэкенд шаблонизатора, который используется. Django предоставляет следующие бэкенды:
Вы можете использовать сторонние бэкэнды указав в BACKEND путь для импорта (например, mypackage.whatever.Backend).
По умолчанию: смотрите ниже
Название для текущей конфигурации шаблонизатора. Позволяет явно указывать бэкенд для рендеринга шаблона. Должны быть уникальными.
По умолчанию настройка равна названию модуля с классом бэкенда, то есть предпоследний элемент BACKEND. Например для 'mypackage.whatever.Backend' название будет 'whatever'.
По умолчанию: [] (Пустой список)
Каталоги, в которых бэкенд должен искать шаблоны в порядке приоритета.
По умолчанию: False
Должен ли шаблонизатор искать файлы шаблонов в приложениях.
Примечание
По умолчанию файл settings.py, созданный django-admin startproject, содержит APP_DIRS: True.
По умолчанию: {} (Пустой словарь)
Дополнительные параметры, которые передаются в бэкенд шаблонизатора. Доступные параметры зависят от бэкенда. Смотрите описание DjangoTemplates и Jinja2.
По умолчанию:
["django.contrib.auth.context_processors.auth",
"django.template.context_processors.debug",
"django.template.context_processors.i18n",
"django.template.context_processors.media",
"django.template.context_processors.static",
"django.template.context_processors.tz",
"django.contrib.messages.context_processors.messages"]
Не рекомендуется, начиная с версии 1.8: Смотрите опцию 'context_processors' из настройки OPTIONS для бэкенда DjangoTemplates.
Список из функций, которые используются для добавления переменных в RequestContext. Функция принимает объект запроса и возвращает словарь с данными, которые будут добавлены в контекст.
Встроенные процессоры контекста были перенесены из django.core.context_processors в django.template.context_processors в Django 1.8.
По умолчанию: False
Не рекомендуется, начиная с версии 1.8: Смотрите опцию 'debug' из настройки OPTIONS для бэкенда DjangoTemplates.
Включает/выключает режим отладки в шаблонах. При True, для ошибок, возникших при выполнении шаблона, будет показана страница с отладочной информацией.
Заметим что Django отображает страницу с ошибкой только при DEBUG равном True, вы можете безопасно использовать эту настройку.
Смотрите DEBUG.
По умолчанию: [] (Пустой список)
Не рекомендуется, начиная с версии 1.8: Смотрите опцию DIRS для DjangoTemplates.
Список каталогов, в которых будут искаться файлы шаблонов при вызове django.template.loaders.filesystem.Loader в указанном порядке.
Заметим, что эти пути должны использовать прямые слэши, то есть быть в Unix-стиле, а не Windows.
Смотрите Язык шаблонов Django.
По умолчанию:
['django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader']
Не рекомендуется, начиная с версии 1.8: Смотрите опцию 'loaders' из настройки OPTIONS для бэкенда DjangoTemplates.
Список из классов-загрузчиков шаблонов, указанных путями для импорта. Каждый класс Loader знает как загрузить шаблоны из определенного источника. Вместо строки может использовать кортеж. Первым элементом должен быть модуль Loader-а, последующие элементы будут переданы при инициализации объекта Loader. Смотрите Язык шаблонов Django: для Python программистов.
По умолчанию: '' (Пустая строка)
Не рекомендуется, начиная с версии 1.8: Смотрите опцию 'string_if_invalid' из настройки OPTIONS для бэкенда DjangoTemplates.
Строка, которая выводится в шаблоне для неверных переменных (например, отсутствующих в контексте). Смотрите Как обрабатываются неправильные переменные.
По умолчанию: 'django.test.runner.DiscoverRunner'
Название класса, используемого для запуска тестирования. Смотрите Using different testing frameworks.
По умолчанию: [] (Пустой список)
Для восстановления состояния базы данных между тестами при использовании TransactionTestCase и бекендов без поддержки транзакций, Django сериализирует содержимое всех приложений с миграциями перед запуском тестов, чтобы потом восстановить состояние перед новым тестом.
Это замедляет запуск тестов. Если у вас есть приложения, которые не требуют такого поведения, вы можете добавить их полное название в эту настройку (например, 'django.contrib.contenttypes'), чтобы исключить из процесса сериализации.
По умолчанию: , (Comma)
Тысячный разделитель, используемый при форматировании чисел. Используется только при USE_THOUSAND_SEPARATOR равном True, и если NUMBER_GROUPING больше чем 0.
Заметим, при USE_L10N равном True, будет использовано значение из настроек локали.
Смотрите NUMBER_GROUPING, DECIMAL_SEPARATOR и USE_THOUSAND_SEPARATOR.
По умолчанию: 'P' (например, 4 p.m.)
Формат по умолчанию для отображение значений полей времени в любой части системы. Заметим, если USE_L10N равна True, будет использоваться формат даты текущей локали, если он указан в файлах локализации. Формат значения смотрите в описании фильтра date.
Смотрите DATE_FORMAT и DATETIME_FORMAT.
По умолчанию:
[
'%H:%M:%S', # '14:30:59'
'%H:%M:%S.%f', # '14:30:59.000200'
'%H:%M', # '14:30'
]
Список, содержащий форматы времени, которые будут приниматься при вводе значения в поле времени. Форматы будут проверяться по порядку, будет использован первый подходящий. Заметим, что используется синтаксис модуля Python datetime, не формат строки для шаблонного тега date.
При USE_L10N равном True, формат даты текущей локали имеет больший приоритет.
Смотрите DATE_INPUT_FORMATS и DATETIME_INPUT_FORMATS.
По умолчанию: 'America/Chicago'
Часовой пояс, который будет использоваться в проекте, или None. Смотрите список часовых поясов.
Примечание
При первом релизе TIME_ZONE по умолчанию была 'America/Chicago', глобальные настройки (которые используется, если settings.py не содержит настройки) содержат значение 'America/Chicago' для обратной совместимости. Шаблон нового проекта содержит значение 'UTC'.
Заметим, что указанный часовой пояс не обязан совпадать с часовым поясом сервера. Например, один сервер может обслуживать несколько Django-проектов, каждый может использовать свой часовой пояс.
Если USE_TZ равна False, Django будет использовать указанный часовой пояс при сохранении времени. При USE_TZ равной True, указанный часовой пояс будет использоваться по умолчанию при отображении даты в шаблоне и при интерпретации введенных через форму значений.
Django устанавливает переменной os.environ['TZ'] значение, указанное в настройке TIME_ZONE. Таким образом все ваши представления и модели будут использовать один и тот же часовой пояс. Однако, Django не установит значение переменной окружения TZ при следующих обстоятельствах:
При ручной конфигурации настроек как описано в соответствующем разделе, или
Если указать TIME_ZONE = None, Django будет использовать системную временную зону. Но при USE_TZ = True конвертация локального времени в UTC будет не такая однозначная.
Если Django не определяет переменную окружения TZ, необходимо самостоятельно убедиться, что ваш код выполняется в правильном окружении.
Примечание
Django не может обеспечить надежное использование различных временных зон для Windows. При использовании Windows TIME_ZONE должна быть равна системному часовому поясу.
По умолчанию: False
Указывает, использовать ли заголовок “Etag”. Улучшает пропускную способность сервера, но уменьшает производительность. Используется CommonMiddleware (смотрите Промежуточный слой (Middleware)) и``Cache Framework`` (смотрите Система кэширования Django).
По умолчанию: True
Указывает, используется ли механизм перевода Django. Позволяет легко отключить его для повышения производительности. При False, Django выполнит небольшую оптимизацию чтобы не загружать механизм перевода.
Смотрите LANGUAGE_CODE, USE_L10N и USE_TZ.
Примечание
По умолчанию файл settings.py, созданный django-admin startproject, содержит USE_I18N = True.
По умолчанию: False
Указывает, использовать ли локализованный формат даты. При True, например, Django будет отображать числа и даты в формате текущей локали.
Смотрите LANGUAGE_CODE, USE_I18N и USE_TZ.
Примечание
По умолчанию файл settings.py, созданный django-admin startproject, содержит USE_L10N = True.
По умолчанию: False
Указывает, использовать ли разделитель тысяч при отображении чисел. При USE_L10N равном True и если эта настройка равна True, Django будет использовать значения THOUSAND_SEPARATOR и NUMBER_GROUPING при форматировании чисел.
Смотрите DECIMAL_SEPARATOR, NUMBER_GROUPING и THOUSAND_SEPARATOR.
По умолчанию: False
Указывает, используется ли часовой пояс. При True, Django будет использовать объекты даты и времени с указанным часовым поясом. Иначе Django будет использовать объекты даты и времени без учета часового пояса.
Смотрите TIME_ZONE, USE_I18N и USE_L10N.
Примечание
По умолчанию файл settings.py, созданный django-admin startproject, содержит USE_TZ = True.
По умолчанию: False
Указывает, использовать ли заголовок X-Forwarded-Host как более приоритетный чем Host. Включать только при использовании прокси, который устанавливает этот заголовок.
По умолчанию: False
Булево, которое указывает, использовать ли заголовок X-Forwarded-Port как более приоритетный чем значение SERVER_PORT из META. Включать только при использовании прокси, который устанавливает этот заголовок.
По умолчанию: None
Полный Python путь к объекту WSGI приложения, которое будет использовать встроенный сервер Django (например runserver). Команда django-admin startproject создаст простой wsgi.py файл с функцией application, и установит значение этой настройки на этот объект application.
Если не указана, будет использовать результат выполнения django.core.wsgi.get_wsgi_application(). В этом случае поведение runserver будет аналогичным предыдущим версиям Django.
По умолчанию: 'F Y'
Формат по умолчанию для полей даты при отображении значении в интерфейсе администратора Django и, возможно, в других частях системы в случае, если отображается только год и месяц.
Например, если отфильтровать страницу списка объектов в интерфейсе администратора по месяцу, название страницы будет содержать год и месяц. Различные локали содержат различные форматы даты. Например, для U.S. English будет отображаться “January 2006”, в то время как для другой локали это может быть - “2006/January”.
Заметим, при USE_L10N равном True, значение текущей локали имеет больший приоритет и будет использоваться вместо настройки.
Смотрите доступные форматы. Также смотрите DATE_FORMAT, DATETIME_FORMAT, TIME_FORMAT и MONTH_DAY_FORMAT.
По умолчанию: 'SAMEORIGIN'
Значение по умолчанию для заголовка X-Frame-Options используемого XFrameOptionsMiddleware. Смотрите раздел о clickjacking защите.
Настройки для django.contrib.auth.
По умолчанию: ['django.contrib.auth.backends.ModelBackend']
Список, который содержит классы бэкенда авторизации (строки с путем для импорта), которые используются при аутентификации пользователя. Смотрите раздел о бэкендах аутентификации.
По умолчанию: ‘auth.User’
Модель пользователя. Смотрите Substituting a custom User model.
Предупреждение
Вы не можете изменить эту настройку в процессе разработки проекта (то есть после создания и миграции моделей, которые ссылаются на указанную модель) без конкретного геморроя. Предполагается, что эта настройка будет добавлена при создании проекта, и модель, на которую она указывает, будет доступна в первой миграции приложения. Смотрите Substituting a custom User model.
По умолчанию: '/accounts/profile/'
URL куда перенаправляется пользователь поле авторизации пользователя в представлении contrib.auth.login, если не передан параметр next.
Используется декоратором login_required(), например.
Эта настройка так же принимает функцию представления или имя URL-шаблона, благодаря этому можно избежать дублирования определения URL-а (в settings и URLconf).
По умолчанию: '/accounts/login/'
URL, на который перенаправляются пользователи для авторизации, особенно при использовании декоратора login_required().
Эта настройка так же принимает функцию представления или имя URL-шаблона, благодаря этому можно избежать дублирования определения URL-а (в settings и URLconf).
По умолчанию: 3
Количество дней, в течении которых действует ссылка для сброса пароля. Используется модулем django.contrib.auth.
Смотрите Как Django хранит пароли.
По умолчанию:
['django.contrib.auth.hashers.PBKDF2PasswordHasher',
'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher',
'django.contrib.auth.hashers.BCryptPasswordHasher',
'django.contrib.auth.hashers.SHA1PasswordHasher',
'django.contrib.auth.hashers.MD5PasswordHasher',
'django.contrib.auth.hashers.UnsaltedMD5PasswordHasher',
'django.contrib.auth.hashers.CryptPasswordHasher']
По умолчанию: [] (Пустой список)
Список валидаторов, которые проверяют надежность пароля пользователя. Подробности смотрите в Password validation. По умолчанию проверка не используется и принимаются все пароли.
Настройки для django.contrib.messages.
По умолчанию: messages.INFO
Определяет минимальный уровень сообщений, которые будут сохраняется фреймверком сообщений. Смотрите описание уровней сообщений.
Важно
If you override MESSAGE_LEVEL in your settings file and rely on any of the built-in constants, you must import the constants module directly to avoid the potential for circular imports, e.g.:
from django.contrib.messages import constants as message_constants
MESSAGE_LEVEL = message_constants.DEBUG
При желании, вы можете указать числовые значения для констант непосредственно в соответствии со значениями в приведенной выше таблице констант.
По умолчанию: 'django.contrib.messages.storage.fallback.FallbackStorage'
Указывает где Django хранит сообщения. Возможные значения:
Смотрите бэкенды для хранения сообщейний.
Бекенды использующие куки – CookieStorage и FallbackStorage – используют значения SESSION_COOKIE_DOMAIN, SESSION_COOKIE_SECURE и SESSION_COOKIE_HTTPONLY при добавлении кук.
По умолчанию:
{messages.DEBUG: 'debug',
messages.INFO: 'info',
messages.SUCCESS: 'success',
messages.WARNING: 'warning',
messages.ERROR: 'error'}
Словарь определяющий соответствие уровня сообщения и тега, которые используются при генерации CSS классов. Указанные значения дополняют значения по умолчанию. То есть вам нужно указать только те, которые вы хотите переопределить. Смотреть Displaying messages.
Важно
Если вы переопределили MESSAGE_TAGS в настройках и используете встроенные значения, вам необходимо импортировать модуль constants, чтобы избежать циклического импорта, например:
from django.contrib.messages import constants as message_constants
MESSAGE_TAGS = {message_constants.INFO: ''}
При желании, вы можете указать числовые значения для констант непосредственно в соответствии со значениями в приведенной выше таблице констант.
Настройки для django.contrib.sessions.
По умолчанию: default
При использовании кэширующего бэкенда для сессии, указывает какой кэш использовать.
По умолчанию: 1209600 (2 недели в секундах)
Время хранения сесионной куки в секундах.
По умолчанию: None
Домен, используемый для сессионных кук. Используйте строку, например, ".example.com" (обратите внимание на точку в начале!), для кросдоменних кук, или используйте None для стандартного домена.
Осторожно меняйте эту настройку на боевом сайте. Если вы измените ее, чтобы разрешить кросс-доменные куки на сайте, старые куки будут использовать старое значение домена. Поэтому все пользователя не будут авторизованы.
Также влияет на работу кук django.contrib.messages.
По умолчанию: True
Использовать ли флаг HTTPOnly для сессионной куки. Если установлена в True, JavaScript в браузере не будет иметь доступ к сессионной куке.
HTTPOnly – флаг, добавляемый в HTTP заголовок, который устанавливает куки. Он не является частью стандарта для куки RFC 2109 и поддерживается не всеми браузерами. Однако, если он поддерживается, может помочь ограничить доступ клиентских скриптов к сессионным кукам.
Эта настройка усложнит использование XSS уязвимости для кражи сессии пользователя. Нет важных причин, чтобы не включать эту опцию. Если вы читаете сессионную куку в Javascript, скорее всего вы делаете что-то не так.
По умолчанию: 'sessionid'
Название для сессионной куки. Может быть каким угодно (но не совпадать с другими куками проекта).
По умолчанию: '/'
Путь(пер. path), который будет использоваться при установке сессионной куки. Путь должен соответствовать URL-у к вашему проекту или быть родительским относительно него.
Эта настройка может быть полезна если вы используете несколько проектов на одном домене. Они могут использовать различные пути для сессионных кук и каждый проект будет видеть только свою сессионную куку.
По умолчанию: False
Указывает использовать ли безопасные куки для сессии. Если равна True, куки будут помечены как “безопасные”, это означает что браузер будет проверять отослана ли кука через HTTPS подключение.
Т.к. для снифера пакетов (например Firesheep) очень легко украсть сессионную куку пользователя, если она отправляется в открытом виде, нет никаких важных причин выключать эту опцию. Эта опция отключит возможность использовать сессию для незащищенных запросов, что является хорошим подходом.
По умолчанию: django.contrib.sessions.backends.db
Указывает, где Django хранит сесионные данные. Возможные значения:
Подробности смотрите Настройка сессий.
По умолчанию: False
Истекает ли сессия после закрытия браузера. Смотрите Browser-length sessions vs. persistent sessions.
По умолчанию: None
Если вы используете файловое хранилище сессионных данных, эта настройка укажет Django каталог, в котором хранить данные. Если используется значение по умолчанию (None), Django будет использовать стандартный каталог для временных файлов вашей операционной системы.
По умолчанию: False
Сохранять ли данные сессии при каждом запросе. При False (по умолчанию), данные сохраняются только при изменении, то есть, если какое либо значение словаря было переназначено или удалено. Пустая сессия не будет создана, даже если эта настройка активна.
По умолчанию 'django.contrib.sessions.serializers.JSONSerializer'
Полный путь для импорта класса сериализатора сессионных данных. Есть несколько встроенных классов:
Смотрите Session serialization, обратите внимание на опасность выполнения стороннего кода при использовании PickleSerializer.
Настройки для django.contrib.sites.
По умолчанию: Не определена
ID(число) текущего сайта в таблице django_site базы данных. Используется для привязки данных к конкретному сайту, что позволяет использовать один установленный проект для нескольких сайтов.
Настройки для django.contrib.staticfiles.
По умолчанию: None
Абсолютный путь к каталогу, в который collectstatic соберет все статические файлы.
Например: "/var/www/example.com/static/"
Если используется стандартное приложение staticfiles (по умолчанию), команда collectstatic соберет все статические файлы в указанном каталоге. Подробности смотрите в разделе о работе со статическими файлами.
Предупреждение
Это должен быть каталог(изначально пустой), куда будут скопированы все статические файлы для более простой настройки сервера; это не каталог, в котором вы создаете статические файлы при разработке. Вы должны создавать статические файлы в каталогах, которые будут найдены модулями поиска статических файлов. По умолчанию это подкаталоги 'static/' в приложениях и каталоги, указанные в STATICFILES_DIRS.
По умолчанию: None
URL, указывающий на каталог со статическими файлами STATIC_ROOT.
Например: "/static/" или "http://static.example.com/"
Если не равен None, будет использовать как базовый путь при определении “media” файлов (класс Media) и приложением staticfiles.
Должна оканчиваться косой чертой, если не пустая.
Возможно вам понадобится настроить раздачу этих файлов dev-сервером и обязательно сделать это для боевого сервера.
По умолчанию: [] (Пустой список)
Настройка указывать каталоги со статическими файлами, которые будут найдены при использовании FileSystemFinder, например, при запуске команды collectstatic или findstatic, или при раздаче файлов встроенным представлением.
Можно указать список строк, указывающих полный путь к каталогам с файлами, например:
STATICFILES_DIRS = [
"/home/special.polls.com/polls/static",
"/home/polls.com/polls/static",
"/opt/webfiles/common",
]
Заметим, что эти пути должны использовать прямые слэши, то есть быть в Unix-стиле, даже на Windows (например, "C:/Users/user/mysite/extra_static_content").
Вы можете указать префикс для каталога как кортеж (префикс, путь), например:
STATICFILES_DIRS = [
# ...
("downloads", "/opt/webfiles/stats"),
]
Предположим STATIC_URL равна '/static/', команда collectstatic добавит файлы “stats” в подкаталог 'downloads' в STATIC_ROOT.
Вы сможете обратиться к файлу '/opt/webfiles/stats/polls_20101022.tar.gz' через '/static/downloads/polls_20101022.tar.gz' в шаблоне, например:
<a href="{% static "downloads/polls_20101022.tar.gz" %}">
По умолчанию: 'django.contrib.staticfiles.storage.StaticFilesStorage'
Бэкенд для хранения файлов, используется при сборе файлов командой collectstatic.
Классы бэкендов можно найти в django.contrib.staticfiles.storage.staticfiles_storage.
Например, смотрите Раздача статических файлов через облачный сервис или CDN.
По умолчанию:
["django.contrib.staticfiles.finders.FileSystemFinder",
"django.contrib.staticfiles.finders.AppDirectoriesFinder"]
Бэкенды для поиска статических файлов.
Бэкенды по умолчанию ищут файлы в каталогах указанных в настройке STATICFILES_DIRS (используя django.contrib.staticfiles.finders.FileSystemFinder) и в подкаталоге static приложений (используя django.contrib.staticfiles.finders.AppDirectoriesFinder). Если существует несколько файлов с одинаковым названием, будет использоваться первый найденный.
Один бэкенд отключен по умолчанию: django.contrib.staticfiles.finders.DefaultStorageFinder. Он ищет файлы в бэкенде для хранения файлов указанном в настройке DEFAULT_FILE_STORAGE.
Примечание
При использовании AppDirectoriesFinder убедитесь, что ваше приложение может быть найдено командой. Просто добавьте его в настройку INSTALLED_APPS.
Бэкенды для поиска файлов пока не предоставляют публичный задокументированный API.
База данных: TEST
Mar 31, 2016