Spec-Zone.ru › Django 1.9

Настройки

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

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

Будьте осторожны при перезаписи настроек, особенно когда значение по умолчанию является непустым списком или словарем, например, MIDDLEWARE_CLASSES и 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 и представление вызывает исключение, Django отправит этим людям электронное письмо с полной информацией об исключении. Каждый элемент в списке должен быть кортежем (Полное имя, адрес электронной почты). Пример:

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

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

ALLOWED_HOSTS

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

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

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

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

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

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

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

В более старых версиях ALLOWED_HOSTS не проверялся, если DEBUG=True. Это также было изменено в Django 1.8.16 для предотвращения атаки DNS rebinding.

ALLOWED_INCLUDE_ROOTS

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

Устарело начиная с версии 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 %} — нет.

APPEND_SLASH

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

При установке в значение True, если URL запроса не соответствует ни одному из шаблонов в URLconf и не оканчивается на слеш, выдается HTTP-перенаправление на тот же URL со добавленным слешем. Обратите внимание, что перенаправление может привести к потере любых данных, отправленных в запросе POST.

Настройка APPEND_SLASH используется только если установлен CommonMiddleware (см. Средствами). См. также 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

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

CACHE_MIDDLEWARE_KEY_PREFIX

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

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

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

CACHE_MIDDLEWARE_SECONDS

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

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

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

CSRF_COOKIE_AGE

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

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

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

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

CSRF_COOKIE_DOMAIN

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

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

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

CSRF_COOKIE_HTTPONLY

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

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

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

См. SESSION_COOKIE_HTTPONLY для получения подробностей о HttpOnly.

CSRF_COOKIE_NAME

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

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

CSRF_COOKIE_PATH

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

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

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

CSRF_COOKIE_SECURE

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

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

CSRF_FAILURE_VIEW

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

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

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

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

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

Бэкенд django.db.backends.postgresql называется django.db.backends.postgresql_psycopg2 в более старых версиях. Для обратной совместимости старое имя всё ещё работает в более новых версиях.

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

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

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

Установка этого параметра требует установки pytz.

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

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

До Django 1.9, бэкенд базы данных PostgreSQL принимал недокументированный параметр TIME_ZONE, что приводило к повреждению данных.

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

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.

CREATE_DB

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

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

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

CREATE_USER

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

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

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

USER

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

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

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

PASSWORD

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

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

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

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

TBLSPACE

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

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

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

Ранее Django использовал 'test_' + NAME в случае отсутствия значения.

TBLSPACE_TMP

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

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

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

Ранее Django использовал 'test_' + NAME + '_temp' в случае отсутствия значения.

DATAFILE

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

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

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

DATAFILE_TMP

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

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

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

DATAFILE_MAXSIZE

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

Предыдущее значение составляло 200М и не настраивалось пользователем.

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

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

DATAFILE_TMP_MAXSIZE

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

Предыдущее значение составляло 200М и не настраивалось пользователем.

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

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

DATABASE_ROUTERS

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

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

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

DATE_FORMAT

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

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

См. также DATETIME_FORMAT, TIME_FORMAT и SHORT_DATE_FORMAT.

DATE_INPUT_FORMATS

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

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

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

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

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

DATETIME_FORMAT

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

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

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

DATETIME_INPUT_FORMATS

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

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

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

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

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

DEBUG

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

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

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

Вы поняли? НИКОГДА не развёртывайте сайт в производство с включённой DEBUG.

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

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.

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_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 МБ).

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

FILE_UPLOAD_DIRECTORY_PERMISSIONS

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

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

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

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

FILE_UPLOAD_PERMISSIONS

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

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

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

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

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

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

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

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

FILE_UPLOAD_TEMP_DIR

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

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

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

FIRST_DAY_OF_WEEK

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

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

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

FIXTURE_DIRS

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

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

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

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

FORCE_SCRIPT_NAME

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

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

FORMAT_MODULE_PATH

По умолчанию: 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.

IGNORABLE_404_URLS

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

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

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

INSTALLED_APPS

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

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

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

Дополнительная информация о конфигурации приложений.

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

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

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

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

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

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

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

INTERNAL_IPS

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

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

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

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

from django.utils.translation import ugettext_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_CLASSES

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

[
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
]

Список классов middleware, которые нужно использовать. См. Middleware.

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

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

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

PREPEND_WWW

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

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

ROOT_URLCONF

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

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

SECRET_KEY

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

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

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

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

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

Сохраняйте это значение в секрете.

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

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

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

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

Примечание

Файл по умолчанию 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_SECONDS

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

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

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

Неправильная настройка может необратимо (в течение некоторого времени) сломать ваш сайт. Сначала прочтите документацию HTTP Strict Transport Security.

SECURE_PROXY_SSL_HEADER

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

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

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

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

В этой ситуации вы захотите настроить свой прокси-сервер для установки пользовательского заголовка 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.)

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

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

SIGNING_BACKEND

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

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

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

SILENCED_SYSTEM_CHECKS

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

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

В более старых версиях заглушенные сообщения уровня ERROR и выше выводились в консоль.

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

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 для опций встроенных бэкэндов.

TEMPLATE_CONTEXT_PROCESSORS

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

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

TEMPLATE_DEBUG

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

Устаревшее начиная с версии 1.8: Установите параметр 'debug' в опции OPTIONS движка DjangoTemplates.

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

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

См. также DEBUG.

TEMPLATE_DIRS

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

Устаревшее начиная с версии 1.8: Установите опцию DIRS движка DjangoTemplates.

Список расположений файлов исходного кода шаблонов, которые ищутся django.template.loaders.filesystem.Loader, в порядке поиска.

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

См. Язык шаблонов Django.

TEMPLATE_LOADERS

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

['django.template.loaders.filesystem.Loader',
 'django.template.loaders.app_directories.Loader']

Устаревшее начиная с версии 1.8: Установите параметр 'loaders' в опции OPTIONS движка DjangoTemplates.

Список классов загрузчиков шаблонов, указанных в виде строк. Каждый класс Loader знает, как импортировать шаблоны из определённого источника. Вместо строки можно использовать кортеж. Первый элемент кортежа должен быть модулем Loader, последующие элементы передаются Loader при инициализации. См. Язык Django шаблонов: для программистов Python.

TEMPLATE_STRING_IF_INVALID

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

Устаревшее начиная с версии 1.8: Установите параметр 'string_if_invalid' в опции OPTIONS движка DjangoTemplates.

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

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'

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

Примечание

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

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

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

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

  • Если вы используете опцию ручного конфигурирования, как описано в ручной настройке параметров, или
  • Если вы укажете TIME_ZONE = None. Это заставит Django использовать системный часовой пояс по умолчанию. Однако это не рекомендуется, когда включён USE_TZ = True, так как это снижает надёжность преобразований между местным временем и UTC.

Если Django не устанавливает переменную среды TZ, вам нужно убедиться, что ваши процессы работают в правильной среде.

Примечание

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

USE_ETAGS

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

Булево значение, определяющее, нужно ли выводить заголовок «Etag». Это экономит пропускную способность, но замедляет производительность. Используется CommonMiddleware (см. Средства промежуточного ПО) и в «Фреймворке кэширования» (см. Фреймворк кэширования Django).

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 отфильтровывается по дате, заголовок для определённого месяца отображает месяц и год. Разные языковые локали имеют разные форматы. Например, для английского языка США это будет «January 2006», а в другой локали это может быть «2006/January».

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

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

X_FRAME_OPTIONS

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

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

Auth

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

AUTHENTICATION_BACKENDS

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

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

AUTH_USER_MODEL

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

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

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

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

LOGIN_REDIRECT_URL

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

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

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

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

Устарело начиная с версии 1.8: Настройка также может быть полным путём к функции представления в Python. Поддержка этой функции будет удалена в Django 1.10.

LOGIN_URL

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

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

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

Устарело начиная с версии 1.8: Настройка также может быть полным путём к функции представления в Python. Поддержка этой функции будет удалена в Django 1.10.

PASSWORD_RESET_TIMEOUT_DAYS

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

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

PASSWORD_HASHERS

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

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

[
    'django.contrib.auth.hashers.PBKDF2PasswordHasher',
    'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher',
    'django.contrib.auth.hashers.BCryptSHA256PasswordHasher',
    'django.contrib.auth.hashers.BCryptPasswordHasher',
    'django.contrib.auth.hashers.SHA1PasswordHasher',
    'django.contrib.auth.hashers.MD5PasswordHasher',
    'django.contrib.auth.hashers.UnsaltedSHA1PasswordHasher',
    'django.contrib.auth.hashers.UnsaltedMD5PasswordHasher',
    'django.contrib.auth.hashers.CryptPasswordHasher',
]

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 для стандартной куки домена.

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

Данная настройка также влияет на файлы cookie, устанавливаемые django.contrib.messages.

SESSION_COOKIE_HTTPONLY

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

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

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_SECURE

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

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

Так как для перехвата сессии пользователя (например, Firesheep) достаточно перехватить незашифрованный файл 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",
]

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

Глобализация (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

  • DEFAULT_CHARSET
  • DEFAULT_CONTENT_TYPE
  • DISALLOWED_USER_AGENTS
  • FORCE_SCRIPT_NAME
  • INTERNAL_IPS
  • MIDDLEWARE_CLASSES
  • Безопасность
    • SECURE_BROWSER_XSS_FILTER
    • SECURE_CONTENT_TYPE_NOSNIFF
    • SECURE_HSTS_INCLUDE_SUBDOMAINS
    • SECURE_HSTS_SECONDS
    • SECURE_PROXY_SSL_HEADER
    • SECURE_REDIRECT_EXEMPT
    • SECURE_SSL_HOST
    • SECURE_SSL_REDIRECT
  • SIGNING_BACKEND
  • USE_ETAGS
  • 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_SECURE
    • CSRF_FAILURE_VIEW
    • CSRF_HEADER_NAME
    • CSRF_TRUSTED_ORIGINS
  • SECRET_KEY
  • X_FRAME_OPTIONS

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

  • DEFAULT_CHARSET
  • SERIALIZATION_MODULES

Шаблоны

  • ALLOWED_INCLUDE_ROOTS
  • TEMPLATES
  • TEMPLATE_CONTEXT_PROCESSORS
  • TEMPLATE_DEBUG
  • TEMPLATE_DIRS
  • TEMPLATE_LOADERS
  • TEMPLATE_STRING_IF_INVALID

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

  • База данных: 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/1.9/ref/settings/

Spec-Zone.ru

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