Я пишу многоразовое приложение Django. Каковы наилучшие методы для добавления собственных настроек в settings.py
? Нужно ли префикс каждой настройки с моим именем app_name, или, может быть, я должен сделать только один параметр dict. для моего приложения?Настройки пространства имен в Django
3
A
ответ
3
Вы должны попытаться определить настройки приложения только в соответствующем пакете, особенно если вы рассматриваете пакет многоразового использования. Всегда придерживаться уникальных глобальных имен (какие настройки являются актуальными) всегда хорошая идея. Посмотрите на PEP-8 globals.
Если вы создаете повторно используемый пакет, попробуйте сначала импортировать атрибут из модуля настроек, чтобы убедиться, что пользователь переопределяет его своей константой.
E.g.
from django.conf import settings
MY_CONSTANT = getattr(settings, 'MY_CONSTANT', True)
def foo(*args, **kwargs):
if MY_CONSTANT:
return 'hello'
else:
return 'goodbye'
Таким образом, пользователь может установить MY_CONSTANT = False
в его модуле настройки, так что приложение будет возвращать 'goodbye'
вместо стандартного 'hello'
Большинство пакетов делают использовать имя пакета в качестве префикса, как вы предложили, вот несколько примеры: