Spec-Zone.ru › Django 1.8

Настройки

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

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

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

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

ABSOLUTE_URL_OVERRIDES теперь работает с моделями, которые не объявляют get_absolute_url().

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

ALLOWED_HOSTS = [
    '.example.com',  # Allow domain and subdomains
    '.example.com.',  # Also allow FQDN and subdomains
]

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

Если заголовок 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, но теперь он проверяется для предотвращения атаки с перенаправлением DNS.

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 (см. Middleware). См. также PREPEND_WWW.

CACHES

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

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

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

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

BACKEND

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

Бэкенд кэша для использования. Встроенные бэкенды кэша:

  • 'django.core.cache.backends.db.DatabaseCache'
  • 'django.core.cache.backends.dummy.DummyCache'
  • 'django.core.cache.backends.filebased.FileBasedCache'
  • 'django.core.cache.backends.locmem.LocMemCache'
  • 'django.core.cache.backends.memcached.MemcachedCache'
  • 'django.core.cache.backends.memcached.PyLibMCCache'

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

KEY_FUNCTION

Строка, содержащая путь с точкой до функции (или любого вызываемого объекта), определяющего, как составить префикс, версию и ключ в конечный ключ кэша. Реализация по умолчанию эквивалентна функции:

def make_key(key, key_prefix, version):
    return ':'.join([key_prefix, str(version), key])

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

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

KEY_PREFIX

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

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

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

LOCATION

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

Расположение кэша для использования. Это может быть каталог для кэша файловой системы, хост и порт для сервера memcache или просто идентификатор для кэша локальной памяти. Например:

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

OPTIONS

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

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

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

TIMEOUT

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

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

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

VERSION

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

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

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

CACHE_MIDDLEWARE_ALIAS

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

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

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.

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 — краткое сообщение (предназначенное для разработчиков или регистрации, а не для конечных пользователей) указывающее причину отклонения запроса. См. Защита от поддельных межсайтовых запросов.

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_psycopg2',
        '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_psycopg2'
  • 'django.db.backends.mysql'
  • 'django.db.backends.sqlite3'
  • 'django.db.backends.oracle'

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

HOST

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

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

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

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

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

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

NAME

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

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

CONN_MAX_AGE

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

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

OPTIONS

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

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

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

PASSWORD

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

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

PORT

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

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

USER

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

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

TEST

Все TEST подзаписи раньше были независимыми записями в словаре настроек базы данных, с префиксом TEST_. Для обратной совместимости со старыми версиями Django, вы можете определить обе версии настроек, если они совпадают. Кроме того, TEST_CREATE, TEST_USER_CREATE и TEST_PASSWD были изменены на CREATE_DB, CREATE_USER и PASSWORD соответственно.

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

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

END_OF_DOCUMENT_MARKER

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

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

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

КОДИРОВКА

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

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

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

СОРТИРОВКА

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

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

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

ЗАВИСИМОСТИ

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

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

ДУБЛИКАТ

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

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

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

НАЗВАНИЕ

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

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

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

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

СЕРИАЛИЗАЦИЯ

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

СОЗДАТЬ_БД

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

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

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

СОЗДАТЬ_ПОЛЬЗОВАТЕЛЯ

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

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

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

ПОЛЬЗОВАТЕЛЬ

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

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

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

ПАРОЛЬ

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

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

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

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

TBLSPACE

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

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

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

Ранее Django использовал 'test_' + NAME, если не было указано.

TBLSPACE_ВРЕМЕННЫЙ

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

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

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

Ранее Django использовал 'test_' + NAME + '_temp', если не было указано.

Файл_данных

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

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

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

Файл_данных_временный

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

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

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

DATAFILE_МАКСИМАЛЬНЫЙ_РАЗМЕР

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

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

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

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

DATAFILE_ВРЕМЕННЫЙ_МАКСИМАЛЬНЫЙ_РАЗМЕР

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

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

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

Максимальный размер, до которого разрешено расти DATAFILE_ВРЕМЕННЫЙ.

TEST_КОДИРОВКА

Устарело начиная с версии 1.7: Используйте запись CHARSET в словаре TEST.

TEST_СОРТИРОВКА

Устарело начиная с версии 1.7: Используйте запись COLLATION в словаре TEST.

TEST_ЗАВИСИМОСТИ

Устарело начиная с версии 1.7: Используйте запись DEPENDENCIES в словаре TEST.

TEST_ДУБЛИКАТ

Устарело начиная с версии 1.7: Используйте запись MIRROR в словаре TEST.

TEST_НАЗВАНИЕ

Устарело начиная с версии 1.7: Используйте запись NAME в словаре TEST.

TEST_СОЗДАТЬ

Устарело начиная с версии 1.7: Используйте запись CREATE_DB в словаре TEST.

TEST_ПОЛЬЗОВАТЕЛЬ

Устарело начиная с версии 1.7: Используйте запись USER в словаре TEST.

TEST_СОЗДАТЬ_ПОЛЬЗОВАТЕЛЯ

Устарело начиная с версии 1.7: Используйте запись CREATE_USER в словаре TEST.

TEST_ПАРОЛЬ

Устарело начиная с версии 1.7: Используйте запись PASSWORD в словаре TEST.

TEST_TBLSPACE

Устарело начиная с версии 1.7: Используйте запись TBLSPACE в словаре TEST.

TEST_TBLSPACE_ВРЕМЕННЫЙ

Устарело начиная с версии 1.7: Используйте запись TBLSPACE_TMP в словаре TEST.

DATABASE_РОУТЕРЫ

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

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

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

DATE_ФОРМАТ

По умолчанию: '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 тега Django шаблонов.

Когда 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 тега Django шаблонов.

Когда 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 будет использовать стандартный временный каталог для операционной системы. Например, на операционных системах типа *nix он будет по умолчанию /tmp.

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

FIRST_DAY_OF_WEEK

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

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

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

FIXTURE_DIRS

По умолчанию: () (пустой кортеж)

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

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

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

Ваш код никогда не должен напрямую обращаться к 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 настройки) и добавить middleware, который скопирует значение из старого 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. По умолчанию указывает на экземпляр метода конфигурации Python dictConfig.

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

Ранее значение по умолчанию было 'django.utils.log.dictConfig'.

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

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

SessionMiddleware, AuthenticationMiddleware и MessageMiddleware были удалены из этого параметра.

MIGRATION_MODULES

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

{}  # empty dictionary

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

Пример:

{'blog': 'blog.db_migrations'}

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

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

MONTH_DAY_FORMAT

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

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

Например, при фильтрации по дате на странице списка изменений админки Django заголовок для заданного дня отображает день и месяц. Разные локали имеют разные форматы. Например, в английском (США) будет «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 (см. Мидлвеар). См. также APPEND_SLASH.

ROOT_URLCONF

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

Строка, представляющая полный путь импорта вашей корневой 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.
  • Form wizard прогресс при использовании хранилища cookie с formtools.wizard.views.CookieWizardView.
  • Все password_reset() токены.
  • Все активные form previews.
  • Любое использование криптографического шифрования, если не указан другой ключ.

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

Примечание

Файл по умолчанию 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, используя не-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).

Примечание

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

SERIALIZATION_MODULES

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

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

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

SERVER_EMAIL

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

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

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

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

SHORT_DATE_FORMAT

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

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

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

SHORT_DATETIME_FORMAT

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

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

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

SIGNING_BACKEND

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

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

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

SILENCED_SYSTEM_CHECKS

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

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

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

TEMPLATES

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

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

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

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

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

BACKEND

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

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

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

Вы можете использовать бэкенд шаблонов, который не поставляется с Django, задав BACKEND полным путём (т.е. 'mypackage.whatever.Backend').

NAME

По умолчанию: см. ниже

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

Он по умолчанию принимает имя модуля, определяющего класс движка, т.е. предпоследний элемент BACKEND, если он не предоставлен. Например, если бэкенд — 'mypackage.whatever.Backend', то его имя по умолчанию — 'whatever'.

DIRS

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

Директории, в которых движок должен искать файлы исходного кода шаблонов в порядке поиска.

APP_DIRS

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

Нужно ли движку искать файлы исходного кода шаблонов внутри установленных приложений.

Примечание

Созданный по умолчанию файл settings.py django-admin startproject устанавливает 'APP_DIRS': True.

OPTIONS

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

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

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 при инициализации. См. Язык шаблонов 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, то формат, определённый локалью, имеет больший приоритет и будет применён вместо него.

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

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

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

Примечание

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

USE_ETAGS

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

Булевое значение, указывающее, нужно ли выводить заголовок «Etag». Это экономит трафик, но снижает производительность. Используется CommonMiddleware (см. Middleware) и в «Системе кэширования» (см. Систему кэширования 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. Это нужно включать только если используется прокси, который устанавливает этот заголовок.

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

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

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

X_FRAME_OPTIONS

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

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

Авторизация

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

AUTHENTICATION_BACKENDS

По умолчанию: ('django.contrib.auth.backends.ModelBackend',)

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

AUTH_USER_MODEL

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

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

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

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

LOGIN_REDIRECT_URL

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

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

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

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

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

LOGIN_URL

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

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

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

Устаревшее начиная с версии 1.8: Настройка также может быть путём к функции представления в формате `имя_модуля.имя_функции`. Поддержка будет удалена в 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.BCryptPasswordHasher',
 'django.contrib.auth.hashers.SHA1PasswordHasher',
 'django.contrib.auth.hashers.MD5PasswordHasher',
 'django.contrib.auth.hashers.UnsaltedMD5PasswordHasher',
 'django.contrib.auth.hashers.CryptPasswordHasher')

Сообщения

Настройки для 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'

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

Бэкенды, использующие cookie - CookieStorage и FallbackStorage - используют значение SESSION_COOKIE_DOMAIN, SESSION_COOKIE_SECURE и SESSION_COOKIE_HTTPONLY при настройке cookie.

MESSAGE_TAGS

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

{messages.DEBUG: 'debug',
messages.INFO: 'info',
messages.SUCCESS: 'success',
messages.WARNING: 'warning',
messages.ERROR: 'error'}

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

Важно

Если вы переопределяете 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 недели, в секундах)

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

SESSION_COOKIE_DOMAIN

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

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

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

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

SESSION_COOKIE_HTTPONLY

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

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

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

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

END_OF_DOCUMENT_MARKER

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

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

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

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 finders, который по умолчанию являются подкаталогами приложений 'static/' и любыми каталогами, которые вы включаете в STATICFILES_DIRS.

STATIC_URL

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

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

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

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

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

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

STATICFILES_DIRS

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

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

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

STATICFILES_DIRS = (
    "/home/special.polls.com/polls/static",
    "/home/polls.com/polls/static",
    "/opt/webfiles/common",
)

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

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

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

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

Например, если вы установили STATIC_URL в '/static/', команда управления collectstatic соберет файлы “stats” в подкаталоге 'downloads' каталога STATIC_ROOT.

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

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

STATICFILES_STORAGE

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

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

Готовый экземпляр хранилища, определённого в этой настройке, можно найти в django.contrib.staticfiles.storage.staticfiles_storage.

Пример см. в Обработка статических файлов с облачного сервиса или CDN.

STATICFILES_FINDERS

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

("django.contrib.staticfiles.finders.FileSystemFinder",
 "django.contrib.staticfiles.finders.AppDirectoriesFinder")

Список механизмов поиска, которые знают, как найти статические файлы в различных местах.

По умолчанию он будет искать файлы, хранящиеся в настройке STATICFILES_DIRS (используя django.contrib.staticfiles.finders.FileSystemFinder) и в подкаталоге static каждого приложения (используя django.contrib.staticfiles.finders.AppDirectoriesFinder). Если присутствует несколько файлов с одинаковым именем, будет использован первый найденный файл.

Один механизм поиска отключён по умолчанию: django.contrib.staticfiles.finders.DefaultStorageFinder. Если добавить его в вашу настройку STATICFILES_FINDERS, он будет искать статические файлы в стандартном хранилище файлов, как определено в настройке DEFAULT_FILE_STORAGE.

Примечание

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

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

Индекс основных параметров

Кэш

  • CACHES
  • CACHE_MIDDLEWARE_ALIAS
  • CACHE_MIDDLEWARE_KEY_PREFIX
  • CACHE_MIDDLEWARE_SECONDS

База данных

  • DATABASES
  • DATABASE_ROUTERS
  • DEFAULT_INDEX_TABLESPACE
  • DEFAULT_TABLESPACE

Отладка

  • DEBUG
  • DEBUG_PROPAGATE_EXCEPTIONS

Электронная почта

  • ADMINS
  • DEFAULT_CHARSET
  • DEFAULT_FROM_EMAIL
  • EMAIL_BACKEND
  • EMAIL_FILE_PATH
  • EMAIL_HOST
  • EMAIL_HOST_PASSWORD
  • EMAIL_HOST_USER
  • EMAIL_PORT
  • EMAIL_SSL_CERTFILE
  • EMAIL_SSL_KEYFILE
  • EMAIL_SUBJECT_PREFIX
  • EMAIL_TIMEOUT
  • EMAIL_USE_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
  • 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
  • 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.8/ref/settings/

Spec-Zone.ru

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