Невозможно импортировать некоторые переменные из настроек django - PullRequest
0 голосов
/ 08 июля 2019

Я установил DJANGO_SETTINGS_MODULE в качестве файла настроек.Ниже приводятся примеры строк этого файла настроек:

TEST = {
    'CLIENT': os.environ.get("CLIENT_NAME", "unknown"),
    'ENVIRONMENT': os.environ.get("ENVIRONMENT", "unknown")
}

client = os.environ.get("CLIENT_NAME", "unknown")
environment = os.environ.get("ENVIRONMENT", "unknown")

Затем я пытаюсь импортировать настройки django, используя

from django.conf import settings as django_settings

. Затем я могу напечатать значение django_settings.TEST['CLIENT']но не из django_settings.client, как я получаю 'Settings' object has no attribute 'client'

Что мне не хватает?На мой взгляд, единственное отличие состоит в том, что TEST является диктатом, а клиент - переменной строкового типа.

1 Ответ

1 голос
/ 08 июля 2019

Это действительно потому, что настройки должны быть во всех столицах. Это указано в документации по настройке :

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

  • Имена настроек должны быть в верхнем регистре.

За кулисами это происходит потому, что django.conf.settings на самом деле не модуль, а класс, который динамически создается на основе этого модуля; код читает только те переменные, которые находятся во всех заглавных буквах.

(Обратите внимание, что стилистически это имеет смысл; настройки по определению являются константами, а стиль Python - помещать константы во все заглавные буквы.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...