Настройки
Предупреждение
Будьте осторожны при переопределении настроек, особенно когда значения по умолчанию представляют собой непустые списки или словари, такие как STATICFILES_FINDERS. Убедитесь, что вы сохраняете компоненты, необходимые для функций Django, которые вы хотите использовать.
Основные настройки
Вот список настроек, доступных в ядре Django, и их значения по умолчанию. Настройки, предоставляемые приложениями contrib, перечислены ниже, за которыми следует тематический индекс основных настроек. Для ознакомления с базовыми материалами, см. руководство по настройкам.
ABSOLUTE_URL_OVERRIDES
Значение по умолчанию: {} (Пустой словарь)
Словарь, сопоставляющий "app_label.model_name" строки функциям, которые принимают объект модели и возвращают его URL. Это способ вставки или переопределения get_absolute_url() методов на основе каждой установки. Пример:
ABSOLUTE_URL_OVERRIDES = {
'blogs.blog': lambda o: "/blogs/%s/" % o.slug,
'news.story': lambda o: "/stories/%s/%s/" % (o.pub_year, o.slug),
}
Имя модели, используемое в этой настройке, должно быть во всех строчных буквах, независимо от регистра фактического имени класса модели.
ADMINS
Значение по умолчанию: [] (Пустой список)
Список всех людей, которые получают уведомления об ошибках кода. Когда DEBUG=False и AdminEmailHandler настроено в LOGGING (выполняется по умолчанию), Django отправляет этим людям подробности о возникших исключениях в цикле запроса/ответа.
Каждый элемент в списке должен быть кортежем (Полное имя, адрес электронной почты). Пример:
[('John', 'john@example.com'), ('Mary', 'mary@example.com')]
ALLOWED_HOSTS
Значение по умолчанию: [] (Пустой список)
Список строк, представляющих имена хостов/доменов, которые может обслуживать этот сайт Django. Это мера безопасности для предотвращения атак с использованием заголовка HTTP Host, которые возможны даже при многих, казалось бы, безопасных конфигурациях веб-сервера.
Значения в этом списке могут быть полными именами (например, 'www.example.com'), в этом случае они будут точно сопоставляться с заголовком запроса Host (регистронезависимо, без порта). Значение, начинающееся с точки, может использоваться как поддоменное подстановочное значение: '.example.com' будет соответствовать example.com, www.example.com, и любому другому поддомену example.com. Значение '*' будет соответствовать чему угодно; в этом случае вы несете ответственность за предоставление собственной проверки заголовка Host (возможно, в посреднике; если это так, этот посредник должен быть указан первым в MIDDLEWARE).
Django также позволяет использовать полное доменное имя (FQDN) любых записей. Некоторые браузеры включают конечную точку в заголовке Host , которую Django удаляет при выполнении проверки хоста.
Если заголовок Host (или X-Forwarded-Host , если USE_X_FORWARDED_HOST включен), не соответствует ни одному значению в этом списке, метод django.http.HttpRequest.get_host() вызовет SuspiciousOperation.
Когда DEBUG равно True и ALLOWED_HOSTS пусто, хост проверяется на соответствие ['.localhost', '127.0.0.1', '[::1]'].
ALLOWED_HOSTS также проверяется при запуске тестов.
Эта проверка применяется только через get_host(); если ваш код напрямую обращается к заголовку Host из request.META , вы обходите эту защиту безопасности.
APPEND_SLASH
Значение по умолчанию: True
Если установлено значение True, если URL запроса не соответствует ни одному из шаблонов в URLconf и не заканчивается слешем, выводится HTTP-перенаправление на тот же URL со слешем в конце. Обратите внимание, что перенаправление может привести к потере любых данных, отправленных в запросе POST.
Настройка APPEND_SLASH используется только при установке CommonMiddleware (см. Средства промежуточного ПО). См. также 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.PyMemcacheCache''django.core.cache.backends.memcached.PyLibMCCache''django.core.cache.backends.redis.RedisCache'
Вы можете использовать кэш-бекенд, не поставляемый с Django, установив BACKEND на полностью квалифицированный путь к классу кэш-бекенда (например, mypackage.backends.whatever.WhateverCache).
Добавлен бекенд PyMemcacheCache.
Добавлен бекенд RedisCache.
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, записи в кэше не будут истекать. Значение 0 вызывает немедленное истечение ключей (в действительности «не кэшировать»).
VERSION
Значение по умолчанию: 1
Номер версии по умолчанию для ключей кэша, сгенерированных сервером Django.
Дополнительная информация см. в документации по кэшу.
CACHE_MIDDLEWARE_ALIAS
Значение по умолчанию: 'default'
Подключение к кэшу для использования для средства промежуточного ПО кэша.
CACHE_MIDDLEWARE_KEY_PREFIX
Значение по умолчанию: '' (Пустая строка)
Строка, которая будет добавлена в качестве префикса к ключам кэша, сгенерированным средством промежуточного ПО кэша. Этот префикс комбинируется с настройкой KEY_PREFIX; он не заменяет его.
См. фреймворк кэширования Django.
END_OF_DOCUMENT_MARKER ```CACHE_MIDDLEWARE_SECONDS
По умолчанию: 600
Число секунд по умолчанию для кэширования страницы для средства кэширования.
CSRF_COOKIE_AGE
Срок действия куки CSRF в секундах.
Причина установки длительного срока истечения срока действия — избежать проблем в случае закрытия браузера пользователем или добавления страницы в закладки, а затем загрузки этой страницы из кэша браузера. Без постоянных куки отправка формы в этом случае не удастся.
Некоторые браузеры (в частности, Internet Explorer) могут запретить использование постоянных куки или повредить индексы хранилища куки на диске, в результате чего проверки CSRF-защиты могут (иногда прерывисто) не удаваться. Измените это значение на None, чтобы использовать куки CSRF на основе сессий, которые хранят куки в памяти вместо постоянного хранилища.
CSRF_COOKIE_DOMAIN
Домен, который будет использоваться при установке куки CSRF. Это может быть полезно для легкого исключения запросов с разных поддоменов из стандартной защиты от поддельных запросов с одного сайта. Его следует установить на строку, например, ".example.com", чтобы разрешить запрос POST из формы на одном поддомене, который будет принят представлением, предоставляемым другим поддоменом.
Обратите внимание, что наличие этого параметра не подразумевает, что защита Django от поддельных запросов с одного сайта по умолчанию защищена от атак с разных поддоменов — см. раздел ограничения CSRF.
CSRF_COOKIE_HTTPONLY
Использовать HttpOnly флаг для куки CSRF. Если это значение установлено в True, клиентский JavaScript не сможет получить доступ к куки CSRF.
Обозначение куки CSRF как HttpOnly не предлагает никакой практической защиты, потому что CSRF предназначен только для защиты от атак с разных доменов. Если злоумышленник может прочитать куки через JavaScript, он уже находится в том же домене, что и браузер, поэтому он может делать всё, что захочет. (XSS — гораздо большая проблема, чем CSRF).
Хотя этот параметр мало что практического дает, его иногда требуют аудиторы безопасности.
Если вы включите его и вам нужно отправить значение маркера CSRF с запросом AJAX, ваш JavaScript должен извлечь значение из скрытого поля формы маркера CSRF вместо из куки.
См. SESSION_COOKIE_HTTPONLY для получения дополнительной информации о HttpOnly.
CSRF_COOKIE_NAME
Имя куки, используемое для маркера аутентификации CSRF. Вы можете задать любое имя (только если оно отличается от других имён куки в вашем приложении). См. защиту от поддельных запросов с одного сайта.
CSRF_COOKIE_PATH
Путь, заданный для куки CSRF. Он должен либо совпадать с путем URL вашего проекта Django, либо быть родительским по отношению к этому пути.
Это полезно, если у вас работает несколько экземпляров Django под одним и тем же именем хоста. Они могут использовать различные пути куки, и каждый экземпляр увидит только свою собственную куки CSRF.
CSRF_COOKIE_SAMESITE
Значение флага SameSite для куки CSRF. Этот флаг предотвращает отправку куки в запросах с разных сайтов.
См. SESSION_COOKIE_SAMESITE для получения дополнительной информации о SameSite.
CSRF_COOKIE_SECURE
Использовать ли безопасные куки для куки CSRF. Если это значение установлено в True, куки будет помечена как «безопасная», что означает, что браузеры могут гарантировать, что куки отправляется только по HTTPS-соединению.
CSRF_USE_SESSIONS
По умолчанию: False
Хранить ли маркер CSRF в сессии пользователя вместо куки. Требует использования django.contrib.sessions.
Хранение маркера CSRF в куки (по умолчанию в Django) безопасно, но хранение его в сессии — распространенная практика в других веб-фреймворках и поэтому иногда требуется аудиторами безопасности.
Поскольку предварительно настроенные представления об ошибках требуют маркер CSRF, SessionMiddleware должен появляться в MIDDLEWARE перед любым средством обработки, которое может вызвать исключение для вызова представления об ошибках (например, PermissionDenied), если вы используете CSRF_USE_SESSIONS. См. порядок обработки.
CSRF_FAILURE_VIEW
По умолчанию: 'django.views.csrf.csrf_failure'
Точечный путь к функции представления, которая будет использоваться, когда входящий запрос отклоняется защитой от поддельных запросов с одного сайта. Функция должна иметь следующий вид:
def csrf_failure(request, reason=""):
...
где reason — короткое сообщение (предназначенное для разработчиков или регистрации, а не для конечных пользователей), указывающее причину отклонения запроса. Оно должно возвращать HttpResponseForbidden.
django.views.csrf.csrf_failure() принимает дополнительный template_name параметр, который по умолчанию равен '403_csrf.html'. Если шаблон с таким именем существует, он будет использован для рендеринга страницы.
CSRF_HEADER_NAME
По умолчанию: 'HTTP_X_CSRFTOKEN'
Имя заголовка запроса, используемого для аутентификации CSRF.
Как и другие заголовки HTTP в request.META, имя заголовка, полученное от сервера, нормализуется путём преобразования всех символов в верхний регистр, замены всех дефисов на нижние подчёркивания и добавления префикса 'HTTP_' к имени. Например, если ваш клиент отправляет заголовок 'X-XSRF-TOKEN', параметр должен быть 'HTTP_X_XSRF_TOKEN'.
CSRF_TRUSTED_ORIGINS
По умолчанию: [] (пустой список)
Список доверенных источников для небезопасных запросов (например, POST).
Для запросов, содержащих заголовок Origin, защита Django от поддельных запросов с одного сайта требует, чтобы этот заголовок совпадал с источником, представленным в заголовке Host.
Для небезопасного запроса secure, который не содержит заголовок Origin, запрос должен иметь заголовок Referer , который соответствует источнику, представленному в заголовке Host.
Эти проверки предотвращают, например, запрос POST с subdomain.example.com для успешного выполнения против api.example.com. Если вам нужны запросы с разных сайтов, продолжая пример, добавьте 'https://subdomain.example.com' в этот список (и/или http://... если запросы поступают с небезопасной страницы).
Параметр также поддерживает поддомены, поэтому можно добавить 'https://*.example.com', например, чтобы разрешить доступ со всех поддоменов example.com.
Значения в более старых версиях должны содержать только имя хоста (возможно, с предшествующей точкой) и не должны включать схему или звёздочку.
Также проверка заголовка Origin не выполняется в более старых версиях.
DATABASES
По умолчанию: {} (пустой словарь)
Словарь, содержащий настройки всех баз данных, которые будут использоваться с Django. Это вложенный словарь, содержимое которого сопоставляет псевдоним базы данных со словарем, содержащим параметры для отдельной базы данных.
Параметр DATABASES должен настроить базу данных default; также может быть указано любое количество дополнительных баз данных.
Самый простой возможный файл настроек для установки с одной базой данных — это SQLite. Его можно настроить следующим образом:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'mydatabase',
}
}
При подключении к другим базам данных, таким как MariaDB, MySQL, Oracle или PostgreSQL, понадобятся дополнительные параметры подключения. См. настройку ENGINE ниже, чтобы узнать, как указать другие типы баз данных. Этот пример для PostgreSQL:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'mydatabase',
'USER': 'mydatabaseuser',
'PASSWORD': 'mypassword',
'HOST': '127.0.0.1',
'PORT': '5432',
}
}
Ниже приведены доступные дополнительные внутренние параметры, которые могут потребоваться для более сложных конфигураций:
ATOMIC_REQUESTS
По умолчанию: False
Установите это значение в True, чтобы обернуть каждое представление в транзакцию в этой базе данных. См. Связывание транзакций с HTTP-запросами.
AUTOCOMMIT
По умолчанию: True
Установите это значение в False, если вы хотите отключить управление транзакциями Django и реализовать свою собственную.
ENGINE
По умолчанию: '' (пустая строка)
База данных для использования. Встроенные базы данных:
'django.db.backends.postgresql''django.db.backends.mysql''django.db.backends.sqlite3''django.db.backends.oracle'
Можно использовать базу данных, которая не входит в Django, установив ENGINE на полный путь (например, mypackage.backends.whatever).
HOST
По умолчанию: '' (пустая строка)
Хост для подключения к базе данных. Пустая строка означает localhost. Не используется с SQLite.
Если это значение начинается с обратного слэша ('/') и используется MySQL, то MySQL подключится через сокет Unix к указанному сокету. Например:
"HOST": '/var/run/mysql'
Если используется MySQL и это значение не начинается с обратного слэша, то это значение считается хостом.
Если используется PostgreSQL, по умолчанию (пустая HOST) подключение к базе данных осуществляется через сокеты доменной системы Unix («локальные» строки в pg_hba.conf). Если сокет доменной системы Unix не находится в стандартном расположении, используйте то же значение unix_socket_directory из postgresql.conf. Для подключения через TCP-сокеты установите HOST на «localhost» или «127.0.0.1» («строки хоста» в pg_hba.conf). В Windows следует всегда определять HOST, так как сокеты доменной системы Unix недоступны.
NAME
По умолчанию: '' (пустая строка)
Имя базы данных для использования. Для SQLite — полный путь к файлу базы данных. При указании пути всегда используйте обратные слэши, даже в Windows (например, C:/homes/user/mysite/sqlite3.db).
CONN_MAX_AGE
По умолчанию: 0
Срок жизни подключения к базе данных в секундах. Используйте 0 для закрытия подключений к базе данных в конце каждого запроса — историческое поведение Django — и None для неограниченных постоянных подключений.
OPTIONS
По умолчанию: {} (пустой словарь)
Дополнительные параметры для подключения к базе данных. Доступные параметры зависят от используемой базы данных.
Некоторую информацию об доступных параметрах можно найти в документации Базы данных. Для получения дополнительной информации обратитесь к документации своего модуля бэкенда.
PASSWORD
По умолчанию: '' (пустая строка)
Пароль для подключения к базе данных. Не используется с SQLite.
PORT
По умолчанию: '' (пустая строка)
Порт для подключения к базе данных. Пустая строка означает стандартный порт. Не используется с SQLite.
TIME_ZONE
По умолчанию: None
Строка, представляющая часовой пояс для этого подключения к базе данных, или None. Этот внутренний параметр настройки DATABASES принимает те же значения, что и общий параметр TIME_ZONE.
Когда USE_TZ равно True, а этот параметр установлен, чтение дат и времени из базы данных возвращает даты и время с учётом часового пояса в этом часовом поясе вместо UTC. Если USE_TZ равно False, установка этого параметра — ошибка.
-
Если база данных не поддерживает часовые пояса (например, SQLite, MySQL, Oracle), Django считывает и записывает даты и время в местном времени в соответствии с этим параметром, если он установлен, и в UTC, если нет.
Изменение часового пояса подключения изменяет способ чтения и записи дат и времени в базе данных.
- Если Django управляет базой данных и у вас нет веских причин для других действий, оставьте этот параметр без значения. Лучше всего хранить даты и время в UTC, так как это предотвращает неоднозначные или несуществующие даты и время при изменении летнего времени. Кроме того, получение дат и времени в UTC упрощает арифметику дат и времени — нет необходимости учитывать возможные изменения смещения при переходе на летнее время.
- Если вы подключаетесь к базе данных стороннего разработчика, которая хранит даты и время в местном времени, а не в UTC, тогда вам необходимо установить этот параметр в соответствующий часовой пояс. Аналогично, если Django управляет базой данных, но системы сторонних разработчиков подключаются к той же базе данных и ожидают найти даты и время в местном времени, тогда вам необходимо установить этот параметр.
-
Если база данных поддерживает часовые пояса (например, PostgreSQL), параметр
TIME_ZONEочень редко используется. Его можно изменить в любое время; база данных позаботится о преобразовании дат и времени в желаемый часовой пояс.Установка часового пояса подключения к базе данных может быть полезна для выполнения сырых SQL-запросов, включающих функции даты и времени, предоставляемые базой данных, такие как
date_trunc, так как их результаты зависят от часового пояса.Однако это имеет недостаток: получение всех дат и времени в местном времени усложняет арифметику дат и времени — вам необходимо учитывать возможные изменения смещения при переходе на летнее время.
Вместо установки параметра
TIME_ZONE, рассмотрите возможность явного преобразования в местное время с помощьюAT TIME ZONEв сырых SQL-запросах.
DISABLE_SERVER_SIDE_CURSORS
По умолчанию: False
Установите это значение на True, если вы хотите отключить использование курсоров на стороне сервера с QuerySet.iterator(). Пулы транзакций и курсоры на стороне сервера описывает случай использования.
Это PostgreSQL-специфическая настройка.
USER
По умолчанию: '' (пустая строка)
Имя пользователя для подключения к базе данных. Не используется с SQLite.
TEST
По умолчанию: {} (пустой словарь)
Словарь настроек для тестовых баз данных; подробности о создании и использовании тестовых баз данных см. в Тестовая база данных.
Вот пример с конфигурацией тестовой базы данных:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'USER': 'mydatabaseuser',
'NAME': 'mydatabase',
'TEST': {
'NAME': 'mytestdatabase',
},
},
}
Следующие ключи в словаре TEST доступны:
CHARSET
По умолчанию: None
Кодировка набора символов, используемая для создания тестовой базы данных. Значение этой строки передается непосредственно в базу данных, поэтому её формат зависит от базы данных.
Поддерживается бэкендами PostgreSQL (postgresql) и MySQL (mysql).
COLLATION
По умолчанию: None
Порядок сортировки для создания тестовой базы данных. Это значение передается непосредственно в бэкенд, поэтому его формат зависит от бэкенда.
Поддерживается только для бэкенда mysql (см. справочник MySQL для получения подробностей).
DEPENDENCIES
По умолчанию: ['default'], для всех баз данных, кроме default, которая не имеет зависимостей.
Зависимости для создания базы данных. См. документацию по управлению порядком создания тестовых баз данных для получения подробностей.
MIGRATE
По умолчанию: True
При установке в False, миграции не будут выполняться при создании тестовой базы данных. Это аналогично установке None в качестве значения в MIGRATION_MODULES, но для всех приложений.
MIRROR
По умолчанию: None
Псевдоним базы данных, которую эта база данных должна дублировать при тестировании.
Эта настройка нужна для тестирования конфигураций «мастер/раб» (в некоторых базах данных называются «мастер/ведомый») нескольких баз данных. См. документацию по тестированию конфигураций мастер/ведомый для получения подробностей.
NAME
По умолчанию: None
Имя базы данных для использования при выполнении набора тестов.
Если используется значение по умолчанию (None) с движком базы данных SQLite, тесты будут использовать базу данных в памяти. Для всех других движков баз данных тестовая база данных будет использовать имя 'test_' + DATABASE_NAME.
См. Тестовая база данных.
SERIALIZE
Булевое значение, определяющее, сериализует ли стандартный тестовый запуск базу данных в строку JSON в памяти перед запуском тестов (для восстановления состояния базы данных между тестами, если у вас нет транзакций). Вы можете установить это в False для ускорения времени создания, если у вас нет классов тестов с serialized_rollback=True.
Устарело начиная с версии 4.0: Этот параметр устарел, так как его можно определить из databases с опцией serialized_rollback включённой.
TEMPLATE
Это параметр, специфичный для PostgreSQL.
Имя шаблона (например, 'template0') для создания тестовой базы данных.
CREATE_DB
По умолчанию: True
Этот параметр специфичен для Oracle.
Если он установлен в значение False, тестовые табличные пространства не будут автоматически созданы в начале тестов или удалены в конце.
CREATE_USER
По умолчанию: True
Этот параметр специфичен для Oracle.
Если он установлен в значение False, тестовый пользователь не будет автоматически создан в начале тестов и удалён в конце.
USER
По умолчанию: None
Этот параметр специфичен для Oracle.
Имя пользователя для подключения к базе данных Oracle, которая будет использоваться при выполнении тестов. Если не указано, Django будет использовать 'test_' + USER.
PASSWORD
По умолчанию: None
Этот параметр специфичен для Oracle.
Пароль для подключения к базе данных Oracle, которая будет использоваться при выполнении тестов. Если не указан, Django сгенерирует случайный пароль.
ORACLE_MANAGED_FILES
По умолчанию: False
Этот параметр специфичен для Oracle.
Если установлено значение True, будут использоваться табличные пространства Oracle Managed Files (OMF). DATAFILE и DATAFILE_TMP будут проигнорированы.
TBLSPACE
По умолчанию: None
Этот параметр специфичен для Oracle.
Имя табличного пространства, которое будет использоваться при выполнении тестов. Если не указано, Django будет использовать 'test_' + USER.
TBLSPACE_TMP
По умолчанию: None
Этот параметр специфичен для Oracle.
Имя временного табличного пространства, которое будет использоваться при выполнении тестов. Если не указано, Django будет использовать 'test_' + USER + '_temp'.
DATAFILE
По умолчанию: None
Этот параметр специфичен для Oracle.
Имя файла данных для использования для TBLSPACE. Если не указано, Django будет использовать TBLSPACE + '.dbf'.
DATAFILE_TMP
По умолчанию: None
Этот параметр специфичен для Oracle.
Имя файла данных для использования для TBLSPACE_TMP. Если не указано, Django будет использовать TBLSPACE_TMP + '.dbf'.
DATAFILE_MAXSIZE
По умолчанию: '500M'
Этот параметр специфичен для Oracle.
Максимальный размер, до которого разрешено увеличиваться DATAFILE.
DATAFILE_TMP_MAXSIZE
По умолчанию: '500M'
Этот параметр специфичен для Oracle.
Максимальный размер, до которого разрешено увеличиваться DATAFILE_TMP.
DATAFILE_SIZE
По умолчанию: '50M'
Этот параметр специфичен для Oracle.
Начальный размер DATAFILE.
DATAFILE_TMP_SIZE
По умолчанию: '50M'
Этот параметр специфичен для Oracle.
Начальный размер DATAFILE_TMP.
DATAFILE_EXTSIZE
По умолчанию: '25M'
Этот параметр специфичен для Oracle.
Величина, на которую расширяется DATAFILE при необходимости в большем объёме.
DATAFILE_TMP_EXTSIZE
По умолчанию: '25M'
Этот параметр специфичен для Oracle.
Величина, на которую расширяется DATAFILE_TMP при необходимости в большем объёме.
DATA_UPLOAD_MAX_MEMORY_SIZE
По умолчанию: 2621440 (т.е. 2,5 МБ).
Максимальный размер в байтах тела запроса, после которого будет поднято исключение SuspiciousOperation (RequestDataTooBig). Проверка выполняется при обращении к request.body или request.POST, и рассчитывается относительно общего размера запроса за вычетом данных любого загружаемого файла. Вы можете установить это значение в None для отключения проверки. Приложения, ожидающие необычно большие формы отправки, должны настроить это значение.
Размер данных запроса связан с объёмом памяти, необходимым для обработки запроса и заполнения словарей GET и POST. Большие запросы могут использоваться в качестве вектора атаки типа «отказ в обслуживании», если не контролируются. Так как веб-серверы обычно не выполняют глубокий анализ запроса, подобная проверка на этом уровне невозможна.
См. также FILE_UPLOAD_MAX_MEMORY_SIZE.
DATA_UPLOAD_MAX_NUMBER_FIELDS
По умолчанию: 1000
Максимальное количество параметров, которые могут быть получены через GET или POST, прежде чем будет поднято исключение SuspiciousOperation (TooManyFields). Вы можете установить это значение в None для отключения проверки. Приложения, ожидающие необычно большое количество полей формы, должны настроить это значение.
Количество параметров запроса связано со временем, необходимым для обработки запроса и заполнения словарей GET и POST. Большие запросы могут использоваться в качестве вектора атаки типа «отказ в обслуживании», если не контролируются. Так как веб-серверы обычно не выполняют глубокий анализ запроса, подобная проверка на этом уровне невозможна.
DATABASE_ROUTERS
По умолчанию: [] (Пустой список)
Список маршрутизаторов, которые будут использоваться для определения базы данных, которую нужно использовать при выполнении запроса к базе данных.
См. документацию по автоматическому маршрутизированию баз данных в конфигурациях с несколькими базами данных.
DATE_FORMAT
По умолчанию: 'N j, Y' (например, Feb. 4, 2003)
Формат по умолчанию для отображения полей даты в любой части системы. Обратите внимание, что если USE_L10N установлено в значение True, формат, определённый локалью, имеет более высокий приоритет и будет применён вместо него. См. allowed date format strings.
См. также DATETIME_FORMAT, TIME_FORMAT и SHORT_DATE_FORMAT.
DATE_INPUT_FORMATS
По умолчанию:
[
'%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', # '2006-10-25', '10/25/2006', '10/25/06'
'%b %d %Y', '%b %d, %Y', # 'Oct 25 2006', 'Oct 25, 2006'
'%d %b %Y', '%d %b, %Y', # '25 Oct 2006', '25 Oct, 2006'
'%B %d %Y', '%B %d, %Y', # 'October 25 2006', 'October 25, 2006'
'%d %B %Y', '%d %B, %Y', # '25 October 2006', '25 October, 2006'
]
Список форматов, которые будут приняты при вводе данных в поле даты. Форматы будут проверены в порядке, и будет использован первый корректный. Обратите внимание, что эти строковые форматы используют синтаксис модуля datetime Python, а не форматы из date фильтра шаблона.
Когда USE_L10N имеет значение True, формат, определённый локалью, имеет более высокий приоритет и будет применён вместо него.
См. также DATETIME_INPUT_FORMATS и TIME_INPUT_FORMATS.
DATETIME_FORMAT
По умолчанию: 'N j, Y, P' (например, Feb. 4, 2003, 4 p.m.)
Формат по умолчанию для отображения полей datetime в любой части системы. Обратите внимание, что если USE_L10N установлено в True, формат, определённый локалью, имеет более высокий приоритет и будет применён вместо него. См. allowed date format strings.
См. также DATE_FORMAT, TIME_FORMAT и SHORT_DATETIME_FORMAT.
DATETIME_INPUT_FORMATS
По умолчанию:
[
'%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59'
'%Y-%m-%d %H:%M:%S.%f', # '2006-10-25 14:30:59.000200'
'%Y-%m-%d %H:%M', # '2006-10-25 14:30'
'%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 %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'
]
Список форматов, которые будут приняты при вводе данных в поле datetime. Форматы будут проверены в порядке, и будет использован первый корректный. Обратите внимание, что эти строковые форматы используют синтаксис модуля datetime Python, а не форматы из date фильтра шаблона. Форматы только даты не включены, так как поля datetime автоматически попробуют DATE_INPUT_FORMATS в крайнем случае.
Когда USE_L10N установлено в True, формат, заданный локалью, имеет больший приоритет и будет применён вместо него.
См. также DATE_INPUT_FORMATS и TIME_INPUT_FORMATS.
DEBUG
По умолчанию: False
Булево значение, включающее/выключающее режим отладки.
Никогда не развертывайте сайт в производство с DEBUG включённым.
Одна из основных функций режима отладки — отображение подробных страниц ошибок. Если ваше приложение вызывает исключение, когда DEBUG установлено в True, Django отобразит подробный стек вызовов, включая много метаданных об вашей среде, такие как все текущие настройки Django (из settings.py).
В целях безопасности Django не будет включать настройки, которые могут быть чувствительными, такие как SECRET_KEY. В частности, он будет исключать любые настройки, имя которых содержит следующие фрагменты:
'API''KEY''PASS''SECRET''SIGNATURE''TOKEN'
Обратите внимание, что это частичные совпадения. 'PASS' также будет соответствовать PASSWORD, так же как 'TOKEN' будет соответствовать TOKENIZED и так далее.
Тем не менее, следует помнить, что всегда будут разделы вывода отладки, непригодные для публичного использования. Пути к файлам, параметры конфигурации и тому подобное предоставляют злоумышленникам дополнительную информацию о вашем сервере.
Также важно помнить, что при работе с DEBUG включённым, Django будет запоминать каждый SQL-запрос, который он выполняет. Это полезно при отладке, но на сервере в производстве это быстро займёт память.
Наконец, если DEBUG установлено в False, вам также необходимо правильно установить настройку ALLOWED_HOSTS. Если этого не сделать, все запросы будут возвращены как «Неверный запрос (400)».
Примечание
Файл по умолчанию settings.py созданный django-admin
startproject устанавливает DEBUG = True для удобства.
DEBUG_PROPAGATE_EXCEPTIONS
По умолчанию: False
Если установлено в True, обработка исключений Django для функций представлений (handler500, или представление отладки, если DEBUG установлено в True), и регистрация ответов 500 (django.request) пропускаются, и исключения распространяются вверх.
Это может быть полезно для некоторых тестовых установок. Не следует использовать на реальном сайте, если вы не хотите, чтобы ваш веб-сервер (а не Django) генерировал ответы «Внутренняя ошибка сервера». В этом случае убедитесь, что ваш сервер не отображает стек вызовов или другую чувствительную информацию в ответе.
DECIMAL_SEPARATOR
По умолчанию: '.' (Точка)
Разделитель десятичных знаков по умолчанию, используемый при форматировании десятичных чисел.
Обратите внимание, что если USE_L10N установлено в True, то формат, заданный локалью, имеет больший приоритет и будет применён вместо него.
См. также NUMBER_GROUPING, THOUSAND_SEPARATOR и USE_THOUSAND_SEPARATOR.
DEFAULT_AUTO_FIELD
По умолчанию: 'django.db.models.AutoField'
Тип поля первичного ключа по умолчанию для моделей, у которых нет поля с primary_key=True.
DEFAULT_CHARSET
По умолчанию: 'utf-8'
Набор символов по умолчанию для всех HttpResponse объектов, если тип MIME не задан вручную. Используется при построении заголовка Content-Type.
DEFAULT_EXCEPTION_REPORTER
По умолчанию: 'django.views.debug.ExceptionReporter'
Класс отчётчика об исключениях по умолчанию, который будет использован, если для экземпляра HttpRequest ещё не был назначен. См. Пользовательские отчёты об ошибках.
DEFAULT_EXCEPTION_REPORTER_FILTER
По умолчанию: 'django.views.debug.SafeExceptionReporterFilter'
Класс фильтра отчётчика об исключениях по умолчанию, который будет использован, если для экземпляра HttpRequest ещё не был назначен. См. Фильтрация отчётов об ошибках.
DEFAULT_FILE_STORAGE
По умолчанию: 'django.core.files.storage.FileSystemStorage'
Класс хранилища файлов по умолчанию, который будет использоваться для любых операций, связанных с файлами, которые не указывают определённую систему хранения. См. Управление файлами.
DEFAULT_FROM_EMAIL
По умолчанию: 'webmaster@localhost'
Адрес электронной почты по умолчанию, используемый для различных автоматических сообщений от администратора(ов) сайта. Это не включает сообщения об ошибках, отправленные в ADMINS и MANAGERS; для этого см. SERVER_EMAIL.
DEFAULT_INDEX_TABLESPACE
По умолчанию: '' (Пустая строка)
Пространство имен таблицы по умолчанию для индексов полей, которые не задают своё, если это поддерживается бэкэндом (см. Пространства имён таблиц).
DEFAULT_TABLESPACE
По умолчанию: '' (Пустая строка)
Пространство имён таблицы по умолчанию для моделей, которые не задают своё, если это поддерживается бэкэндом (см. Пространства имён таблиц).
DISALLOWED_USER_AGENTS
По умолчанию: [] (Пустой список)
Список скомпилированных регулярных выражений, представляющих строки User-Agent, которые не допускаются для посещения любой страницы по всему сайту. Используйте это для ботов/пауков. Это используется только если CommonMiddleware установлен (см. Средства промежуточного ПО).
EMAIL_BACKEND
По умолчанию: 'django.core.mail.backends.smtp.EmailBackend'
Бэкенд, который используется для отправки писем. Список доступных бэкэндов см. в Отправка почты.
EMAIL_FILE_PATH
По умолчанию: Не определено
Каталог, используемый файловым бэкендом электронной почты для хранения выходных файлов.
EMAIL_HOST
По умолчанию: 'localhost'
Хост, используемый для отправки электронной почты.
См. также EMAIL_PORT.
EMAIL_HOST_PASSWORD
По умолчанию: '' (пустая строка)
Пароль, используемый для SMTP-сервера, определенного в EMAIL_HOST. Эта настройка используется совместно с EMAIL_HOST_USER при аутентификации на SMTP-сервере. Если какая-либо из этих настроек пуста, Django не будет пытаться выполнить аутентификацию.
См. также EMAIL_HOST_USER.
EMAIL_HOST_USER
По умолчанию: '' (пустая строка)
Имя пользователя, используемое для SMTP-сервера, определенного в EMAIL_HOST. Если пусто, Django не будет пытаться выполнить аутентификацию.
См. также EMAIL_HOST_PASSWORD.
EMAIL_PORT
По умолчанию: 25
Порт, используемый для SMTP-сервера, определенного в EMAIL_HOST.
EMAIL_SUBJECT_PREFIX
По умолчанию: '[Django] '
Префикс строки темы для сообщений электронной почты, отправленных с django.core.mail.mail_admins или django.core.mail.mail_managers. Вероятно, вам потребуется добавить завершающий пробел.
EMAIL_USE_LOCALTIME
По умолчанию: False
Отправлять заголовок SMTP Date сообщений электронной почты по местному времени (True) или по UTC (False)?
EMAIL_USE_TLS
По умолчанию: False
Использовать TLS-соединение (безопасное) при работе с SMTP-сервером. Это используется для явных TLS-соединений, обычно на порту 587. Если у вас возникают проблемы с зависанием соединений, см. настройку неявного TLS EMAIL_USE_SSL.
EMAIL_USE_SSL
По умолчанию: False
Использовать неявное TLS-соединение (безопасное) при работе с SMTP-сервером. В большинстве документации по электронной почте такой тип TLS-соединения упоминается как SSL. Обычно используется на порту 465. Если у вас возникают проблемы, см. настройку явного TLS EMAIL_USE_TLS.
Обратите внимание, что EMAIL_USE_TLS/EMAIL_USE_SSL взаимно исключают друг друга, поэтому установите только одно из этих значений в True.
EMAIL_SSL_CERTFILE
По умолчанию: None
Если EMAIL_USE_SSL или EMAIL_USE_TLS равно True, вы можете указать путь к файлу цепочки сертификатов в формате PEM для использования в SSL-соединении.
EMAIL_SSL_KEYFILE
По умолчанию: None
Если EMAIL_USE_SSL или EMAIL_USE_TLS равно True, вы можете указать путь к файлу закрытого ключа в формате PEM для использования в SSL-соединении.
Обратите внимание, что настройка EMAIL_SSL_CERTFILE и EMAIL_SSL_KEYFILE не приводит к проверке сертификатов. Они передаются в базовое SSL-соединение. Обратитесь к документации функции Python ssl.wrap_socket() для получения подробной информации о том, как обрабатываются файлы цепочки сертификатов и закрытого ключа.
EMAIL_TIMEOUT
По умолчанию: None
Устанавливает таймаут в секундах для блокирующих операций, таких как попытка подключения.
FILE_UPLOAD_HANDLERS
По умолчанию:
[
'django.core.files.uploadhandler.MemoryFileUploadHandler',
'django.core.files.uploadhandler.TemporaryFileUploadHandler',
]
Список обработчиков, которые следует использовать для загрузки. Изменение этой настройки позволяет полностью настроить — даже заменить — процесс загрузки Django.
Подробности см. в разделе Управление файлами.
FILE_UPLOAD_MAX_MEMORY_SIZE
По умолчанию: 2621440 (т.е. 2,5 МБ).
Максимальный размер (в байтах) загрузки перед передачей в файловую систему. Подробнее см. в разделе Управление файлами.
См. также DATA_UPLOAD_MAX_MEMORY_SIZE.
FILE_UPLOAD_DIRECTORY_PERMISSIONS
По умолчанию: None
Числовой режим, применяемый к каталогам, созданным при загрузке файлов.
Эта настройка также определяет права по умолчанию для собранных каталогов статики при использовании команды управления collectstatic. Подробности о переопределении см. в collectstatic.
Это значение отражает функциональность и оговорки настройки FILE_UPLOAD_PERMISSIONS.
FILE_UPLOAD_PERMISSIONS
По умолчанию: 0o644
Числовой режим (например, 0o644) для устанавливаемых прав на недавно загруженные файлы. Более подробную информацию о значении этих режимов см. в документации для os.chmod().
Если None, поведение будет зависеть от операционной системы. На большинстве платформ временные файлы будут иметь режим 0o600, а файлы, сохранённые из памяти, будут сохранены с использованием стандартной маски umask системы.
По соображениям безопасности эти права не применяются к временным файлам, хранящимся в FILE_UPLOAD_TEMP_DIR.
Эта настройка также определяет права по умолчанию для собранных статических файлов при использовании команды управления collectstatic. Подробности о переопределении см. в collectstatic.
Предупреждение
Всегда добавляйте префикс 0o к режиму.
Если вы не знакомы с режимами файлов, обратите внимание, что префикс 0o очень важен: он указывает на восьмеричное число, в котором должны быть указаны режимы. Если вы попытаетесь использовать 644, поведение будет абсолютно неправильным.
FILE_UPLOAD_TEMP_DIR
По умолчанию: None
Каталог для временного хранения данных (обычно файлов, превышающих FILE_UPLOAD_MAX_MEMORY_SIZE) при загрузке файлов. Если None, Django будет использовать стандартный временный каталог для операционной системы. Например, по умолчанию это будет /tmp на операционных системах *nix.
Подробности см. в разделе Управление файлами.
FIRST_DAY_OF_WEEK
По умолчанию: 0 (воскресенье)
Число, представляющее первый день недели. Это особенно полезно при отображении календаря. Это значение используется только при отсутствии форматирования международной локализации или при отсутствии формата для текущей локали.
Значение должно быть целым числом от 0 до 6, где 0 означает воскресенье, 1 — понедельник и т. д.
FIXTURE_DIRS
По умолчанию: [] (пустой список)
Список каталогов, просматриваемых для файлов фикстур, помимо каталога fixtures каждого приложения, в порядке поиска.
Обратите внимание, что эти пути должны использовать косые черты Unix, даже в Windows.
См. Предоставление данных с фикстурами и Загрузка фикстур.
FORCE_SCRIPT_NAME
По умолчанию: None
Если не None, это будет использоваться в качестве значения переменной окружения SCRIPT_NAME в любом HTTP-запросе. Эта настройка может использоваться для переопределения значения, предоставляемого сервером, переменной SCRIPT_NAME, которое может быть переписанной версией предпочтительного значения или вообще не предоставлено. Она также используется в django.setup() для установки префикса скрипта решателя URL вне цикла запроса/ответа (например, в командах управления и автономных скриптах) для генерации правильных URL-адресов, когда SCRIPT_NAME не /.
FORM_RENDERER
По умолчанию: 'django.forms.renderers.DjangoTemplates'
Класс, который отрисовывает формы и виджеты форм. Он должен реализовывать API низкоуровневой отрисовки виджетов. Включенные рендереры форм:
FORMAT_MODULE_PATH
По умолчанию: None
Полный путь к Python-пакету, содержащему пользовательские определения форматов для локалей проекта. Если он не None, Django будет искать файл formats.py, в директории с именем текущей локали и использовать форматы, определённые в этом файле.
Например, если FORMAT_MODULE_PATH установлен на mysite.formats, а текущий язык en (английский), Django ожидает структуру каталогов, подобную:
mysite/
formats/
__init__.py
en/
__init__.py
formats.py
Вы также можете установить это значение в список путей Python, например:
FORMAT_MODULE_PATH = [
'mysite.formats',
'some_app.formats',
]
Когда Django ищет определённый формат, он пройдёт по всем заданным Python-путям, пока не найдёт модуль, который фактически определяет данный формат. Это означает, что форматы, определённые в пакетах, расположенных выше в списке, будут иметь приоритет над теми же форматами в пакетах, расположенных ниже.
Доступные форматы:
DATE_FORMATDATE_INPUT_FORMATS-
DATETIME_FORMAT, DATETIME_INPUT_FORMATSDECIMAL_SEPARATORFIRST_DAY_OF_WEEKMONTH_DAY_FORMATNUMBER_GROUPINGSHORT_DATE_FORMATSHORT_DATETIME_FORMATTHOUSAND_SEPARATORTIME_FORMATTIME_INPUT_FORMATSYEAR_MONTH_FORMAT
IGNORABLE_404_URLS
По умолчанию: [] (Пустой список)
Список скомпилированных регулярных выражений, описывающих URL-адреса, которые следует игнорировать при сообщении об ошибках HTTP 404 по электронной почте (см. Как управлять отчётами об ошибках). Регулярные выражения сопоставляются с request's full paths (включая строку запроса, если она есть). Используйте это, если ваш сайт не предоставляет часто запрашиваемый файл, такой как favicon.ico или robots.txt.
Это используется только в том случае, если BrokenLinkEmailsMiddleware включено (см. Средства промежуточного ПО).
INSTALLED_APPS
По умолчанию: [] (Пустой список)
Список строк, обозначающих все приложения, которые включены в этой установке Django. Каждая строка должна быть путём к Python-классу конфигурации приложения (предпочтительно) или пакету, содержащему приложение.
- класс конфигурации приложения (предпочтительно), или
- пакет, содержащий приложение.
Подробнее о конфигурациях приложений.
Используйте реестр приложений для интроспекции
Ваш код никогда не должен напрямую обращаться к INSTALLED_APPS. Используйте django.apps.apps вместо этого.
Имена и метки приложений должны быть уникальными в INSTALLED_APPS
Имя приложения names — путь к пакету приложения — должно быть уникальным. Нет способа включить одно и то же приложение дважды, кроме как дублирования его кода под другим именем.
Метка приложения labels (по умолчанию последняя часть имени) также должна быть уникальной. Например, вы не можете включить как django.contrib.auth так и myproject.auth . Однако вы можете переименовать приложение с помощью пользовательской конфигурации, которая определяет другую метку label.
Эти правила применяются независимо от того, ссылается ли INSTALLED_APPS на классы конфигурации приложения или пакеты приложений.
Когда несколько приложений предоставляют разные версии одного и того же ресурса (шаблон, статический файл, команда управления, перевод), приложение, указанное первым в INSTALLED_APPS, имеет приоритет.
INTERNAL_IPS
По умолчанию: [] (Пустой список)
Список IP-адресов, как строк, которые:
- Разрешают процессору контекста
debug()добавлять некоторые переменные в контекст шаблона. - Могут использовать закладки админ-документации даже если не вошли в систему как пользователь-администратор.
- Отмечены как «внутренние» (в отличие от «ВНЕШНИЕ») в электронных письмах
AdminEmailHandler.
LANGUAGE_CODE
По умолчанию: 'en-us'
Строка, представляющая код языка для этой установки. Он должен быть в стандартном формате идентификатора языка. Например, английский США — "en-us". См. также список идентификаторов языка и Международная и локальная локализация.
USE_I18N должно быть активным, чтобы это значение имело какой-либо эффект.
Это служит двум целям:
- Если модуль локализации не используется, он определяет, какой перевод будет отображаться всем пользователям.
- Если модуль локализации активен, он предоставляет резервный язык в случае, если предпочтительный язык пользователя не может быть определён или не поддерживается сайтом. Он также предоставляет резервный перевод, когда перевод для данного литерала не существует для предпочтительного языка пользователя.
См. Как Django определяет предпочтительный язык для получения дополнительной информации.
LANGUAGE_COOKIE_AGE
Срок действия языка cookie в секундах.
LANGUAGE_COOKIE_DOMAIN
Домен для использования cookie языка. Установите это в строку, такую как "example.com" для cookie между доменами, или используйте None для стандартного cookie домена.
Будьте осторожны при обновлении этого параметра на сайте в режиме работы. Если вы обновите этот параметр, чтобы включить cookie между доменами на сайте, который ранее использовал cookie стандартного домена, существующие cookie пользователей со старым доменом не будут обновлены. Это приведёт к невозможности переключения языка для пользователей сайта до тех пор, пока эти cookie не истекут. Единственный безопасный и надёжный способ выполнить переключение — изменить имя cookie языка навсегда (через параметр LANGUAGE_COOKIE_NAME) и добавить средство промежуточного ПО, которое копирует значение из старого cookie в новый, а затем удаляет старый.
LANGUAGE_COOKIE_HTTPONLY
Использовать флаг HttpOnly для cookie языка. Если это значение установлено на True, JavaScript на стороне клиента не сможет получить доступ к cookie языка.
См. SESSION_COOKIE_HTTPONLY для получения информации о HttpOnly.
LANGUAGE_COOKIE_NAME
Имя cookie для cookie языка. Это может быть любое значение (при условии, что оно отличается от других имён cookie в вашем приложении). См. Международная и локальная локализация.
LANGUAGE_COOKIE_PATH
Путь, заданный в cookie языка. Он должен совпадать с путём URL вашей установки Django или быть его предком.
Это полезно, если у вас несколько экземпляров Django работают под одним и тем же именем хоста. Они могут использовать разные пути cookie, и каждый экземпляр будет видеть только собственный cookie языка.
Будьте осторожны при обновлении этого параметра на рабочем сайте. Если вы обновите этот параметр, чтобы использовать более глубокий путь, чем раньше, существующие cookie пользователей со старым путём не будут обновлены. Это приведёт к тому, что пользователи сайта не смогут переключать язык, пока эти cookie сохраняются. Единственный безопасный и надёжный вариант для переключения — изменить имя cookie языка постоянно (через параметр LANGUAGE_COOKIE_NAME), и добавить middleware, который копирует значение из старого cookie в новый, а затем удаляет старый.
LANGUAGE_COOKIE_SAMESITE
Значение флага SameSite в cookie языка. Этот флаг предотвращает отправку cookie в запросах между сайтами.
См. SESSION_COOKIE_SAMESITE для получения подробной информации о SameSite.
LANGUAGE_COOKIE_SECURE
Использовать ли защищённый cookie для cookie языка. Если этот параметр установлен в True, cookie будет помечен как «защищённый», что означает, что браузеры могут гарантировать, что cookie отправляется только по HTTPS-соединению.
LANGUAGES
По умолчанию: Список всех доступных языков. Этот список постоянно расширяется, и включение его копии неизбежно быстро устареет. Вы можете увидеть текущий список переведённых языков, посмотрев в django/conf/global_settings.py.
Список представляет собой список пар кортежей в формате (код языка, language name) — например, ('ja', 'Japanese'). Это определяет, какие языки доступны для выбора языка. См. Международные и локальные настройки.
Как правило, значения по умолчанию должны быть достаточными. Устанавливайте этот параметр только в том случае, если вы хотите ограничить выбор языка подмножеством языков, предоставляемых Django.
Если вы определяете пользовательский параметр LANGUAGES, вы можете пометить имена языков как строки перевода, используя функцию gettext_lazy().
Вот пример файла настроек:
from django.utils.translation import gettext_lazy as _
LANGUAGES = [
('de', _('German')),
('en', _('English')),
]
LANGUAGES_BIDI
По умолчанию: Список всех кодов языка, которые пишутся справа налево. Вы можете увидеть текущий список этих языков, посмотрев в django/conf/global_settings.py.
Список содержит коды языка для языков, которые пишутся справа налево.
Как правило, значения по умолчанию должны быть достаточными. Устанавливайте этот параметр только в том случае, если вы хотите ограничить выбор языка подмножеством языков, предоставляемых Django. Если вы определяете пользовательский параметр LANGUAGES, список двунаправленных языков может содержать коды языков, которые не включены на данном сайте.
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, процесс настройки логгирования будет пропущен.
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 для получения более подробной информации.
Примечание
Если MEDIA_URL — относительный путь, то он будет префиксён значением сервера SCRIPT_NAME (или /, если оно не установлено). Это облегчает предоставление приложения Django в подпути без добавления дополнительной конфигурации в настройки.
MIDDLEWARE
По умолчанию: None
Список middleware для использования. См. Middleware.
MIGRATION_MODULES
По умолчанию: {} (Пустой словарь)
Словарь, определяющий пакет, где могут находиться модули миграций на основе каждого приложения. Значение по умолчанию этого параметра — пустой словарь, но имя пакета по умолчанию для модулей миграций — migrations.
Пример:
{'blog': 'blog.db_migrations'}
В этом случае миграции, относящиеся к приложению blog, будут содержаться в пакете blog.db_migrations.
Если вы укажете аргумент app_label, makemigrations автоматически создаст пакет, если он ещё не существует.
Когда вы задаёте None в качестве значения для приложения, Django будет рассматривать это приложение как приложение без миграций, независимо от наличия модуля migrations. Это можно использовать, например, в файле настроек для тестов, чтобы пропустить миграции во время тестирования (таблицы всё равно будут созданы для моделей приложений). Чтобы отключить миграции для всех приложений во время тестов, вы можете установить MIGRATE в False вместо этого. Если MIGRATION_MODULES используется в ваших общих настройках проекта, помните, что для создания таблиц для приложения вам нужно использовать опцию migrate --run-syncdb.
MONTH_DAY_FORMAT
По умолчанию: 'F j'
Формат по умолчанию для полей даты на страницах изменения Django admin – и, возможно, других частях системы – в случаях, когда отображаются только месяц и день.
Например, когда страница изменения Django admin фильтруется по дате, заголовок для заданного дня отображает день и месяц. Разные языковые локали имеют разные форматы. Например, в американском английском это будет «Январь 1», а в испанском – «1 Января».
Обратите внимание, что если USE_L10N установлено в True, соответствующий формат, заданный локалью, имеет более высокий приоритет и будет применён.
См. allowed date format strings. Также см. DATE_FORMAT, DATETIME_FORMAT, TIME_FORMAT и YEAR_MONTH_FORMAT.
NUMBER_GROUPING
По умолчанию: 0
Количество цифр, сгруппированных вместе в целой части числа.
Обычно используется для отображения разделителя тысяч. Если это значение 0, группировка чисел не будет применяться. Если это значение больше 0, то THOUSAND_SEPARATOR будет использоваться в качестве разделителя между этими группами.
Некоторые локали используют неравномерную группировку цифр, например 10,00,00,000 в en_IN. В этом случае вы можете указать последовательность с количеством размеров групп цифр, которые необходимо применить. Первое число определяет размер группы, предшествующей десятичному разделителю, а каждое последующее число определяет размер предшествующих групп. Если последовательность завершается -1, дальнейшая группировка не выполняется. Если последовательность завершается 0, размер последней группы используется для остальной части числа.
Пример кортежа для en_IN:
NUMBER_GROUPING = (3, 2, 0)
Обратите внимание, что если USE_L10N установлено в True, то формат, заданный локалью, имеет более высокий приоритет и будет применён вместо него.
Также см. DECIMAL_SEPARATOR, THOUSAND_SEPARATOR и USE_THOUSAND_SEPARATOR.
PREPEND_WWW
По умолчанию: False
Нужно ли добавлять префикс «www.» к домену URL-адресов, у которых его нет. Это используется только в том случае, если установлен CommonMiddleware (см. Средства-посредники). См. также APPEND_SLASH.
ROOT_URLCONF
По умолчанию: Не определено
Строка, представляющая полный путь импорта Python к вашему корневому URLconf, например "mydjangoapps.urls". Может быть переопределена на уровне запроса путём установки атрибута urlconf на объект входящего HttpRequest. Подробности см. в разделе Как Django обрабатывает запрос.
SECRET_KEY
По умолчанию: '' (Пустая строка)
Секретный ключ для конкретной установки Django. Используется для криптографического шифрования и должен быть установлен на уникальное, непредсказуемое значение.
django-admin startproject автоматически добавляет случайно сгенерированный SECRET_KEY в каждый новый проект.
Использование ключа не должно предполагать, что он представляет собой текст или байты. При каждом использовании необходимо применять force_str() или force_bytes() для преобразования в желаемый тип.
Django откажется от запуска, если SECRET_KEY не установлен.
Предупреждение
Храните это значение в секрете.
Запуск Django с известным SECRET_KEY нарушает многие меры безопасности Django и может привести к эскалации привилегий и уязвимостям удалённого выполнения кода.
Секретный ключ используется для:
- Всех сессий, если используется любой другой бэкенд сессий, кроме
django.contrib.sessions.backends.cache, или используется по умолчаниюget_session_auth_hash(). - Всех сообщений, если используется
CookieStorageилиFallbackStorage. - Всех
PasswordResetViewтокенов. - Любое использование криптографического шифрования, если не предоставлен другой ключ.
Если вы меняете секретный ключ, все вышеперечисленное станет недействительным. Секретные ключи не используются для паролей пользователей, и смена ключей на них не повлияет.
Примечание
Файл по умолчанию settings.py созданный django-admin
startproject создаёт уникальный SECRET_KEY для удобства.
SECURE_CONTENT_TYPE_NOSNIFF
По умолчанию: True
Если True, SecurityMiddleware устанавливает заголовок X-Content-Type-Options: nosniff для всех ответов, у которых его ещё нет.
SECURE_CROSS_ORIGIN_OPENER_POLICY
По умолчанию: 'same-origin'
Если не установлено None, SecurityMiddleware устанавливает заголовок Cross-Origin Opener Policy для всех ответов, у которых его ещё нет, на предоставленное значение.
SECURE_HSTS_INCLUDE_SUBDOMAINS
По умолчанию: False
Если True, SecurityMiddleware добавляет директиву includeSubDomains в заголовок HTTP Strict Transport Security. Не имеет эффекта, если SECURE_HSTS_SECONDS не установлено в ненулевое значение.
Предупреждение
Неправильная установка может необратимо (для значения SECURE_HSTS_SECONDS) сломать ваш сайт. Сначала ознакомьтесь с документацией HTTP Strict Transport Security.
SECURE_HSTS_PRELOAD
По умолчанию: False
Если True, SecurityMiddleware добавляет директиву preload в заголовок HTTP Strict Transport Security. Не имеет эффекта, если SECURE_HSTS_SECONDS не установлено в ненулевое значение.
SECURE_HSTS_SECONDS
По умолчанию: 0
Если задано ненулевое целое значение, SecurityMiddleware задаёт заголовок HTTP Strict Transport Security для всех ответов, у которых его ещё нет.
Предупреждение
Неправильное задание этого параметра может необратимо (на некоторое время) сломать ваш сайт. Сначала ознакомьтесь с документацией HTTP Strict Transport Security.
SECURE_PROXY_SSL_HEADER
Значение по умолчанию: None
Кортеж, представляющий сочетание HTTP-заголовка и значения, указывающего, что запрос безопасен. Это контролирует поведение метода is_secure() объекта запроса.
По умолчанию, is_secure() определяет, является ли запрос безопасным, проверяя, использует ли запрашиваемый URL https://. Этот метод важен для защиты CSRF в Django, и он может использоваться вашим кодом или сторонними приложениями.
Однако, если ваше приложение Django находится за прокси-сервером, прокси может «поглощать» информацию о том, использует ли исходный запрос HTTPS или нет. Если между прокси и Django есть соединение без HTTPS, то is_secure() всегда будет возвращать False — даже для запросов, сделанных конечным пользователем через HTTPS. В противоположность этому, если между прокси и Django есть HTTPS-соединение, то is_secure() всегда будет возвращать True — даже для запросов, изначально сделанных через HTTP.
В этой ситуации настройте свой прокси для установки пользовательского HTTP-заголовка, который сообщает Django, пришёл ли запрос через HTTPS, и установите SECURE_PROXY_SSL_HEADER, чтобы Django знал, какой заголовок искать.
Установите кортеж из двух элементов — имя заголовка для поиска и требуемое значение. Например:
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
Это сообщает Django доверять заголовку X-Forwarded-Proto, полученному от нашего прокси, и всякий раз, когда его значение равно 'https', запрос гарантированно безопасен (то есть он изначально пришёл через HTTPS).
Вы должны только устанавливать эту настройку, если вы контролируете свой прокси или имеете гарантию, что он должным образом устанавливает/удаляет этот заголовок.
Обратите внимание, что заголовок должен быть в формате, используемом request.META — все заглавные буквы и, вероятно, начинающийся с HTTP_. (Помните, что Django автоматически добавляет 'HTTP_' к началу имён заголовков x перед тем, как сделать заголовок доступным в request.META.)
Предупреждение
Изменение этой настройки может поставить под угрозу безопасность вашего сайта. Убедитесь, что вы полностью понимаете свою настройку перед её изменением.
Убедитесь, что ВСЕ следующие утверждения верны, прежде чем настраивать это (предполагая значения из примера выше):
- Ваше приложение Django находится за прокси.
- Ваш прокси удаляет заголовок
X-Forwarded-Protoиз всех входящих запросов. Другими словами, если конечные пользователи включают этот заголовок в свои запросы, прокси его отбросит. - Ваш прокси устанавливает заголовок
X-Forwarded-Protoи отправляет его Django, но только для запросов, которые изначально поступают через HTTPS.
Если хотя бы одно из них не выполняется, вы должны оставить эту настройку в None и найти другой способ определения HTTPS, возможно, с помощью пользовательского middleware.
SECURE_REDIRECT_EXEMPT
Значение по умолчанию: [] (Пустой список)
Если путь URL соответствует регулярному выражению в этом списке, запрос не будет перенаправлен на HTTPS. SecurityMiddleware удаляет ведущие косые черты из путей URL, поэтому шаблоны не должны их включать, например SECURE_REDIRECT_EXEMPT = [r'^no-ssl/$', …]. Если SECURE_SSL_REDIRECT равно False, эта настройка не имеет эффекта.
SECURE_REFERRER_POLICY
Значение по умолчанию: 'same-origin'
Если настроено, SecurityMiddleware задаёт заголовок Referrer Policy для всех ответов, у которых его ещё нет, со значением, указанным в настройке.
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'
Бэкенд, используемый для подписи куки и других данных.
См. также документацию по Криптографической подписи.
SILENCED_SYSTEM_CHECKS
Значение по умолчанию: [] (Пустой список)
Список идентификаторов сообщений, сгенерированных системой проверки (т.е. ["models.W001"] ), которые вы хотите постоянно игнорировать. Заглушенные проверки не будут выводиться в консоль.
См. также документацию по Системе проверки.
TEMPLATES
Значение по умолчанию: [] (Пустой список)
Список настроек всех движков шаблонов, которые будут использоваться с Django. Каждый элемент списка — это словарь, содержащий параметры для отдельного движка.
Вот настройка, которая сообщает движку шаблонов Django загружать шаблоны из подкаталога templates внутри каждого установленного приложения:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'APP_DIRS': True,
},
]
Следующие параметры доступны для всех бэкендов.
BACKEND
Значение по умолчанию: Не определено
Используемый движок шаблонов. Встроенные движки шаблонов:
'django.template.backends.django.DjangoTemplates''django.template.backends.jinja2.Jinja2'
Вы можете использовать движок шаблонов, который не входит в состав Django, установив BACKEND в полный путь (например, 'mypackage.whatever.Backend').
NAME
Значение по умолчанию: см. ниже
Псевдоним для этого движка шаблонов. Это идентификатор, который позволяет выбирать движок для рендеринга. Псевдонимы должны быть уникальными для всех настроенных движков шаблонов.
По умолчанию используется имя модуля, определяющего класс движка, то есть предпоследняя часть BACKEND, если оно не указано. Например, если бэкенд — 'mypackage.whatever.Backend', то его имя по умолчанию — 'whatever'.
DIRS
По умолчанию: [] (пустой список)
Директории, в которых движок должен искать исходные файлы шаблонов в порядке поиска.
APP_DIRS
По умолчанию: False
Нужно ли движку искать исходные файлы шаблонов внутри установленных приложений.
Примечание
Файл по умолчанию settings.py, созданный django-admin
startproject, устанавливает 'APP_DIRS': True.
OPTIONS
По умолчанию: {} (пустой словарь)
Дополнительные параметры, передаваемые шаблонам бэкенда. Доступные параметры зависят от бэкенда шаблонов. См. DjangoTemplates и Jinja2 для опций встроенных бэкендов.
TEST_RUNNER
По умолчанию: 'django.test.runner.DiscoverRunner'
Имя класса, используемого для запуска набора тестов. См. Использование других фреймворков тестирования.
TEST_NON_SERIALIZED_APPS
По умолчанию: [] (пустой список)
Для восстановления состояния базы данных между тестами для TransactionTestCase и бэкендов баз данных без транзакций Django будет сериализовать содержимое всех приложений при запуске тестов, чтобы затем загрузить их из этой копии перед запуском тестов, которые этого требуют.
Это замедляет время запуска тест-раннера; если у вас есть приложения, которые, по вашим знаниям, не нуждаются в этой функции, вы можете добавить их полные имена сюда (например, 'django.contrib.contenttypes'), чтобы исключить их из этого процесса сериализации.
THOUSAND_SEPARATOR
По умолчанию: ',' (запятая)
Разделитель тысяч по умолчанию, используемый при форматировании чисел. Этот параметр используется только в том случае, если USE_THOUSAND_SEPARATOR равно True и NUMBER_GROUPING больше 0.
Обратите внимание, что если USE_L10N установлено в значение True, то формат, заданный локалью, имеет более высокий приоритет и будет применён вместо него.
См. также NUMBER_GROUPING, DECIMAL_SEPARATOR и USE_THOUSAND_SEPARATOR.
TIME_FORMAT
По умолчанию: 'P' (например, 4 p.m.)
Формат по умолчанию для отображения полей времени в любой части системы. Обратите внимание, что если USE_L10N установлено в значение True, то формат, заданный локалью, имеет более высокий приоритет и будет применён вместо него. См. allowed date format strings.
См. также DATE_FORMAT и DATETIME_FORMAT.
TIME_INPUT_FORMATS
По умолчанию:
[
'%H:%M:%S', # '14:30:59'
'%H:%M:%S.%f', # '14:30:59.000200'
'%H:%M', # '14:30'
]
Список форматов, которые будут приниматься при вводе данных в поле времени. Форматы будут пробоваться в порядке, используя первый допустимый. Обратите внимание, что эти строковые форматы используют синтаксис модуля datetime Python, а не строковые форматы из фильтра шаблона date.
Когда USE_L10N равно True, формат, заданный локалью, имеет более высокий приоритет и будет применён вместо него.
См. также DATE_INPUT_FORMATS и DATETIME_INPUT_FORMATS.
TIME_ZONE
По умолчанию: 'America/Chicago'
Строка, представляющая часовой пояс для этой установки. См. список часовых поясов.
Примечание
С момента первого выпуска Django, когда TIME_ZONE был установлен в значение 'America/Chicago', глобальная настройка (используемая, если ничего не определено в settings.py вашего проекта) остаётся 'America/Chicago' для обратной совместимости. Шаблоны новых проектов по умолчанию используют 'UTC'.
Обратите внимание, что это не обязательно часовой пояс сервера. Например, один сервер может обслуживать несколько сайтов на Django, каждый со своей настройкой часового пояса.
Когда USE_TZ равно False, это часовой пояс, в котором Django будет хранить все даты и время. Когда USE_TZ равно True, это часовой пояс по умолчанию, который Django будет использовать для отображения дат и времени в шаблонах и для интерпретации дат и времени, вводимых в формах.
В средах Unix (где реализован time.tzset()), Django устанавливает переменную os.environ['TZ'] в значение, которое вы указали в настройке TIME_ZONE. Таким образом, все ваши представления и модели будут автоматически работать в этом часовом поясе. Однако Django не установит переменную среды TZ, если вы используете ручной вариант конфигурации, как описано в ручной конфигурации настроек. Если Django не устанавливает переменную среды TZ, вам нужно будет обеспечить, чтобы ваши процессы работали в правильной среде.
Примечание
Django не может надёжно использовать альтернативные часовые пояса в среде Windows. Если вы используете Django в Windows, TIME_ZONE должен быть установлен в соответствие с системным часовым поясом.
USE_DEPRECATED_PYTZ
По умолчанию: False
Булево значение, указывающее, использовать ли pytz, а не zoneinfo, в качестве реализации часового пояса по умолчанию.
Устарело начиная с версии 4.0: Эта переходная настройка устарела. Поддержка использования pytz будет удалена в Django 5.0.
USE_I18N
По умолчанию: True
Булево значение, указывающее, должен ли быть включен переводческий механизм Django. Это предоставляет способ его отключения для повышения производительности. Если это значение равно False, Django внесёт некоторые оптимизации, чтобы не загружать механизм перевода.
См. также LANGUAGE_CODE, USE_L10N и USE_TZ.
Примечание
Файл по умолчанию settings.py созданный django-admin
startproject, включает USE_I18N = True для удобства.
USE_L10N
По умолчанию: True
Булево значение, указывающее, будет ли по умолчанию включено форматирование данных с учётом локали. Если это значение установлено в True, Django будет отображать числа и даты с использованием формата текущей локали.
См. также LANGUAGE_CODE, USE_I18N и USE_TZ.
В более старых версиях значение по умолчанию — False.
Устарело начиная с версии 4.0: Эта настройка устарела. Начиная с Django 5.0, форматирование данных с учётом локали всегда включено по умолчанию. Например, Django будет отображать числа и даты в формате текущей локали.
USE_THOUSAND_SEPARATOR
По умолчанию: False
Логическое значение, определяющее, нужно ли отображать числа с разделителем тысяч. При установке в True и USE_L10N также True, Django будет форматировать числа, используя настройки NUMBER_GROUPING и THOUSAND_SEPARATOR. Эти настройки также могут быть заданы локалью, которая имеет приоритет.
См. также DECIMAL_SEPARATOR, NUMBER_GROUPING и THOUSAND_SEPARATOR.
USE_TZ
Значение по умолчанию: False
Примечание
В Django 5.0 значение по умолчанию изменится с False на True.
Логическое значение, определяющее, будут ли даты и время по умолчанию учитывать часовой пояс или нет. Если это значение установлено в True, Django будет использовать даты и время, учитывающие часовой пояс, во внутреннем представлении.
Когда USE_TZ равно False, Django будет использовать даты и время без учета часового пояса в местном времени, за исключением случаев парсинга строк в формате ISO 8601, где информация о часовом поясе всегда будет сохранена, если она есть.
См. также TIME_ZONE, USE_I18N и USE_L10N.
Примечание
Созданный командой django-admin startproject файл по умолчанию settings.py включает USE_TZ = True для удобства.
USE_X_FORWARDED_HOST
Значение по умолчанию: False
Логическое значение, определяющее, использовать заголовок X-Forwarded-Host в приоритете по отношению к заголовку Host. Это следует включать только в том случае, если используется прокси, который устанавливает этот заголовок.
Эта настройка имеет приоритет над USE_X_FORWARDED_PORT. Согласно RFC 7239#section-5.3, заголовок X-Forwarded-Host может включать номер порта, в этом случае не следует использовать USE_X_FORWARDED_PORT.
USE_X_FORWARDED_PORT
Значение по умолчанию: False
Логическое значение, определяющее, использовать заголовок X-Forwarded-Port в приоритете по отношению к заголовку SERVER_PORT META переменной. Это следует включать только в том случае, если используется прокси, который устанавливает этот заголовок.
USE_X_FORWARDED_HOST имеет приоритет над этой настройкой.
WSGI_APPLICATION
Значение по умолчанию: None
Полный путь к объекту WSGI-приложения Python, который будут использовать встроенные серверы Django (например, runserver). Команда управления django-admin
startproject создаст стандартный файл wsgi.py с вызываемым объектом application в нём и установит эту настройку на этот application файл.
Если не задано, будет использовано значение, возвращаемое django.core.wsgi.get_wsgi_application(). В этом случае поведение runserver будет идентично предыдущим версиям Django.
YEAR_MONTH_FORMAT
Значение по умолчанию: 'F Y'
Формат по умолчанию для полей дат на страницах изменения списков Django admin – и, возможно, других частях системы – в случаях, когда отображаются только год и месяц.
Например, когда страница изменения списка Django admin фильтруется по диапазону дат, заголовок для данного месяца отображает месяц и год. Разные локали имеют разные форматы. Например, в США используется «January 2006», в то время как в другой локали может быть «2006/January».
Обратите внимание, что если USE_L10N установлено в True, тогда соответствующий формат, заданный локалью, имеет больший приоритет и будет применён.
См. allowed date format strings. См. также DATE_FORMAT, DATETIME_FORMAT, TIME_FORMAT и MONTH_DAY_FORMAT.
X_FRAME_OPTIONS
Значение по умолчанию: 'DENY'
Значение по умолчанию для заголовка X-Frame-Options, используемого XFrameOptionsMiddleware. Смотрите документацию по защите от кликджекинга.
Auth
Настройки для django.contrib.auth.
AUTHENTICATION_BACKENDS
Значение по умолчанию: ['django.contrib.auth.backends.ModelBackend']
Список классов бэкендов аутентификации (в виде строк), используемых для аутентификации пользователя. Подробнее см. документацию по бэкендам аутентификации.
AUTH_USER_MODEL
Значение по умолчанию: 'auth.User'
Модель, используемая для представления пользователя. См. Замена пользовательской модели.
Предупреждение
Вы не можете изменить настройку AUTH_USER_MODEL в процессе работы проекта (то есть, после создания и миграции моделей, зависящих от неё) без значительных усилий. Она предназначена для установки при запуске проекта, и модель, на которую она ссылается, должна быть доступна в первой миграции приложения, в котором она находится. См. Замена пользовательской модели для получения дополнительной информации.
LOGIN_REDIRECT_URL
Значение по умолчанию: '/accounts/profile/'
URL или имя URL-шаблона, на который перенаправляются запросы после входа в систему, если LoginView не получает параметр next GET.
LOGIN_URL
Значение по умолчанию: '/accounts/login/'
URL или имя URL-шаблона, на который перенаправляются запросы для входа в систему при использовании декоратора login_required(), LoginRequiredMixin или AccessMixin.
LOGOUT_REDIRECT_URL
Значение по умолчанию: None
URL или имя URL-шаблона, на который перенаправляются запросы после выхода из системы, если LogoutView не имеет атрибута next_page. Если None, перенаправления не будет, и будет отображена страница выхода из системы.
PASSWORD_RESET_TIMEOUT
Значение по умолчанию: 259200 (3 дня, в секундах)
Количество секунд, в течение которых действителен адрес сброса пароля.
Используется PasswordResetConfirmView.
Примечание
Уменьшение этого таймаута не повлияет на возможность злоумышленника взломать токен сброса пароля. Токены разработаны для защиты от таких атак без таймаута.
Этот таймаут предназначен для защиты от некоторых маловероятных сценариев атак, таких как получение доступа к архивам электронной почты, которые могут содержать старые, неиспользованные токены сброса пароля.
PASSWORD_HASHERS
Значение по умолчанию:
[
'django.contrib.auth.hashers.PBKDF2PasswordHasher',
'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher',
'django.contrib.auth.hashers.Argon2PasswordHasher',
'django.contrib.auth.hashers.BCryptSHA256PasswordHasher',
]
AUTH_PASSWORD_VALIDATORS
Значение по умолчанию: [] (Пустой список)
Список валидаторов, используемых для проверки сложности паролей. Подробнее см. Валидация паролей. По умолчанию валидация не выполняется, и все пароли принимаются.
Messages
Настройки для 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',
}
Это устанавливает отображение уровня сообщения на тег сообщения, который обычно отображается как класс 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
Срок действия файлов cookie сессии в секундах.
SESSION_COOKIE_DOMAIN
Домен, используемый для файлов cookie сессии. Установите это значение в строку, например, "example.com", для файлов cookie между доменами или используйте None для стандартного файла cookie домена.
Для использования файлов cookie между доменами с CSRF_USE_SESSIONS, необходимо включить ведущую точку (например, ".example.com") для обработки проверки referer промежуточным звеном CSRF.
Будьте осторожны при обновлении этого параметра на рабочем сайте. Если вы обновите этот параметр для включения файлов cookie между доменами на сайте, который ранее использовал стандартные файлы cookie домена, существующие файлы cookie пользователей будут установлены на старый домен. Это может привести к невозможности входа в систему, пока эти файлы cookie сохраняются.
Этот параметр также влияет на файлы cookie, установленные django.contrib.messages.
SESSION_COOKIE_HTTPONLY
Использовать флаг HttpOnly для файла cookie сессии. Если это значение установлено в True, клиентский JavaScript не сможет получить доступ к файлу cookie сессии.
HttpOnly — флаг, включенный в заголовок HTTP ответа Set-Cookie. Он входит в стандарт RFC 6265#section-4.1.2.6 для файлов cookie и может быть полезным способом снижения риска доступа клиентского скрипта к защищенным данным файлов cookie.
Это делает менее тривиальным для злоумышленника повышение уязвимости XSS до полного захвата сессии пользователя. Нет веских причин для отключения этого параметра. Ваш код не должен считывать файлы cookie сессии из JavaScript.
SESSION_COOKIE_NAME
Имя файла cookie, используемого для сессий. Это может быть любое имя (пока оно отличается от других имен файлов cookie в вашем приложении).
SESSION_COOKIE_PATH
Путь, заданный в файле cookie сессии. Он должен соответствовать пути URL вашего Django-приложения или быть родительским по отношению к этому пути.
Это полезно, если у вас несколько экземпляров Django работают под одним именем хоста. Они могут использовать разные пути файлов cookie, и каждый экземпляр будет видеть только свой собственный файл cookie сессии.
SESSION_COOKIE_SAMESITE
Значение флага SameSite в файле cookie сессии. Этот флаг предотвращает отправку файла cookie в запросах между сайтами, тем самым предотвращая атаки CSRF и делая невозможными некоторые методы кражи файлов cookie сессии.
Возможные значения для настройки:
-
'Strict': предотвращает отправку браузером файла cookie на целевой сайт во всех контекстах просмотра между сайтами, даже при переходе по обычной ссылке.Например, для сайта, подобного GitHub, это означало бы, что если зарегистрированный пользователь перейдет по ссылке на закрытый проект GitHub, опубликованный на корпоративном форуме обсуждений или в электронном письме, GitHub не получит файл cookie сессии, и пользователь не сможет получить доступ к проекту. Однако веб-сайт банка, скорее всего, не хочет разрешать ссылки на любые транзакционные страницы из внешних сайтов, поэтому флаг
'Strict'будет уместен. -
'Lax'(по умолчанию): обеспечивает баланс между безопасностью и удобством использования для веб-сайтов, которые хотят сохранить сеанс входа в систему пользователя после того, как пользователь перешел по ссылке с внешнего сайта.В сценарии GitHub файл cookie сессии будет разрешен при переходе по обычной ссылке с внешнего веб-сайта и будет заблокирован в уязвимых к CSRF методах запроса (например,
POST). -
'None'(строка): файл cookie сессии будет отправляться со всеми запросами того же сайта и запросами между сайтами. -
False: отключает флаг.
Примечание
Современные браузеры обеспечивают более безопасную политику по умолчанию для флага SameSite и будут использовать Lax для файлов cookie без явного установленного значения.
SESSION_COOKIE_SECURE
Использовать ли безопасный файл cookie для файла cookie сессии. Если это значение установлено в True, файл cookie будет помечен как «безопасный», что означает, что браузеры могут гарантировать, что файл cookie отправляется только по HTTPS-соединению.
Оставлять этот параметр отключенным — плохая идея, потому что злоумышленник может перехватить незашифрованный файл cookie сессии с помощью анализатора пакетов и использовать его для захвата сессии пользователя.
SESSION_ENGINE
По умолчанию: 'django.contrib.sessions.backends.db'
Управляет тем, где Django хранит данные сессии. Включенные движки:
'django.contrib.sessions.backends.db''django.contrib.sessions.backends.file''django.contrib.sessions.backends.cache''django.contrib.sessions.backends.cached_db''django.contrib.sessions.backends.signed_cookies'
Подробнее см. Настройка движка сессий.
SESSION_EXPIRE_AT_BROWSER_CLOSE
По умолчанию: False
Истекает ли сессия при закрытии пользователем браузера. См. Сессии по длительности работы браузера vs. постоянные сессии.
SESSION_FILE_PATH
По умолчанию: None
Если вы используете хранение сессий на основе файлов, это задаёт директорию, в которой Django будет хранить данные сессий. При использовании значения по умолчанию (None) Django будет использовать стандартную временную директорию системы.
SESSION_SAVE_EVERY_REQUEST
По умолчанию: False
Сохранять ли данные сессии при каждом запросе. Если это False (по умолчанию), то данные сессии будут сохранены только в том случае, если они были изменены — то есть, если какое-либо из значений словаря было присвоено или удалено. Пустые сессии не будут создаваться, даже если этот параметр активен.
SESSION_SERIALIZER
По умолчанию: 'django.contrib.sessions.serializers.JSONSerializer'
Полный путь импорта класса сериализатора, используемого для сериализации данных сессии. Доступные сериализаторы:
'django.contrib.sessions.serializers.PickleSerializer''django.contrib.sessions.serializers.JSONSerializer'
См. Сериализация сессий для подробностей, включая предупреждение о возможном удаленном выполнении кода при использовании PickleSerializer.
Сайты
Настройки для django.contrib.sites.
SITE_ID
По умолчанию: Не определено
Идентификатор текущего сайта в виде целого числа в таблице базы данных django_site. Это используется для того, чтобы данные приложений могли подключаться к конкретным сайтам, и одна база данных могла управлять контентом для нескольких сайтов.
Статические файлы
Настройки для django.contrib.staticfiles.
STATIC_ROOT
По умолчанию: None
Абсолютный путь к каталогу, в который collectstatic соберет статические файлы для развертывания.
Пример: "/var/www/example.com/static/"
Если приложение staticfiles включено (как в шаблоне проекта по умолчанию), команда управления collectstatic соберет статические файлы в этот каталог. Подробнее о использовании см. руководство по управлению статическими файлами.
Предупреждение
Это должен быть пустой каталог назначения для сбора статических файлов из их постоянных расположений в один каталог для удобства развертывания; это не место для постоянного хранения статических файлов. Вы должны хранить их в каталогах, которые будут найдены средствами поиска staticfiles’s finders, которые по умолчанию находятся в подкаталогах приложения 'static/' и любых каталогах, которые вы включаете в STATICFILES_DIRS.
STATIC_URL
По умолчанию: None
URL, используемый для ссылок на статические файлы, расположенные в STATIC_ROOT.
Пример: "static/" или "http://static.example.com/"
Если это не None, это будет использоваться в качестве базового пути для определений активов (класс Media ) и приложения staticfiles.
Он должен заканчиваться слешем, если задано ненулевое значение.
Возможно, вам потребуется настроить эти файлы для обработки в разработке и обязательно нужно это сделать при развертывании.
Примечание
Если STATIC_URL является относительным путем, то он будет предваряться значением, предоставленным сервером для SCRIPT_NAME (или / если не задано). Это упрощает работу с приложением Django в подпути без добавления дополнительной конфигурации в настройки.
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 вашего сайта.
Поиск статических файлов в настоящее время рассматривается как частный интерфейс, поэтому этот интерфейс не документирован.
Индекс настроек ядра
Кэш
База данных
Отладка
Электронная почта
ADMINSDEFAULT_CHARSETDEFAULT_FROM_EMAILEMAIL_BACKENDEMAIL_FILE_PATHEMAIL_HOSTEMAIL_HOST_PASSWORDEMAIL_HOST_USEREMAIL_PORTEMAIL_SSL_CERTFILEEMAIL_SSL_KEYFILEEMAIL_SUBJECT_PREFIXEMAIL_TIMEOUTEMAIL_USE_LOCALTIMEEMAIL_USE_TLSMANAGERSSERVER_EMAIL
Обработка ошибок
DEFAULT_EXCEPTION_REPORTERDEFAULT_EXCEPTION_REPORTER_FILTERIGNORABLE_404_URLSMANAGERSSILENCED_SYSTEM_CHECKS
Настройки загрузки файлов
DEFAULT_FILE_STORAGEFILE_UPLOAD_HANDLERSFILE_UPLOAD_MAX_MEMORY_SIZEFILE_UPLOAD_PERMISSIONSFILE_UPLOAD_TEMP_DIRMEDIA_ROOTMEDIA_URL
Формы
Глобализация (i18n/l10n)
DATE_FORMATDATE_INPUT_FORMATSDATETIME_FORMATDATETIME_INPUT_FORMATSDECIMAL_SEPARATORFIRST_DAY_OF_WEEKFORMAT_MODULE_PATHLANGUAGE_CODELANGUAGE_COOKIE_AGELANGUAGE_COOKIE_DOMAINLANGUAGE_COOKIE_HTTPONLYLANGUAGE_COOKIE_NAMELANGUAGE_COOKIE_PATHLANGUAGE_COOKIE_SAMESITELANGUAGE_COOKIE_SECURELANGUAGESLANGUAGES_BIDILOCALE_PATHSMONTH_DAY_FORMATNUMBER_GROUPINGSHORT_DATE_FORMATSHORT_DATETIME_FORMATTHOUSAND_SEPARATORTIME_FORMATTIME_INPUT_FORMATSTIME_ZONEUSE_I18NUSE_L10NUSE_THOUSAND_SEPARATORUSE_TZYEAR_MONTH_FORMAT
HTTP
DATA_UPLOAD_MAX_MEMORY_SIZEDATA_UPLOAD_MAX_NUMBER_FIELDSDEFAULT_CHARSETDISALLOWED_USER_AGENTSFORCE_SCRIPT_NAMEINTERNAL_IPSMIDDLEWARE- Безопасность
SIGNING_BACKENDUSE_X_FORWARDED_HOSTUSE_X_FORWARDED_PORTWSGI_APPLICATION
Ведение журнала
Модели
Безопасность
- Защита от межсайтовых поддельных запросов
SECRET_KEYX_FRAME_OPTIONS
Сериализация
Шаблоны
Тестирование
- База данных:
TEST TEST_NON_SERIALIZED_APPSTEST_RUNNER
URL-адреса
© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/4.0/ref/settings/