Я определил несколько пользовательских значений в моем файле * settings.py * проекта Django. Мне нужно загрузить эти значения в мои представления и другие файлы проекта, но не все значения, определенные в settings.py, кажутся доступными.
settings.py
# My custom settings
API_URL = 'http://10.0.0.1'
EMAIL_DEFAULT_RECIPIENT = 'foo@bar.tld'
Я загружаю все содержимое файла settings.py, используя следующее, на мой взгляд:
views.py
my_view(request,foo_id):
from django.conf import settings as project_settings
# First log output
logger.debug('API_URL: ' + project_settings.API_URL)
# Second log output
logger.debug('EMAIL_DEFAULT_RECIPIENT: ' + project_settings.EMAIL_DEFAULT_RECIPIENT)
Первый вывод журнала (значение API_URL) правильно:
[2020-00-00 00:00:00 +0000] [16381] [DEBUG] (my_app.views) API_URL : http://10.0.0.1
Странно, что второй выход журнала (значение EMAIL_DEFAULT_RECIPIENT) вызывает исключение:
AttributeError: 'Settings' object has no attribute 'EMAIL_DEFAULT_RECIPIENT'
Django макет проекта
my_project
├── my_app
│ ├── migrations
│ ├── __pycache__
│ └── templates
├── my_project
│ ├── __pycache__
│ ├── static
│ └── templates
├── __pycache__
└── venv
├── bin
├── include
├── lib
└── lib64 -> lib
Мой Django проект обслуживается через NGINX / Gunicorn, запущенный системным сервисным подразделением в рамках venv. Стоит отметить, что я перезапустил этот сервис после изменения содержимого settings.py.
Я также очистил __pycache__
содержимое каталога проекта вручную, но это не влияет на упомянутую проблему.
Для записи Значение API_URL в settings.py давно определено как go, а EMAIL_DEFAULT_RECIPIENT совершенно новое.
Существует ли какой-либо кэш / байт-код, сгенерированный где-либо еще в Django проекте root, который может вызвать эту проблему?
Интересно, какой именно механизм стоит за from django.conf import settings
... Потому что почему-то кажется, что новые значения, добавленные в settings.py, не учитываются, даже если я перезапускаю свое приложение (см. Выше).
Как обеспечить возможность загрузки всех пользовательских значений из settings.py из views.py или других файлов проекта?