Как получить значения настроек по умолчанию django, НЕ определенные в моем файле settings.py?

Я должен что-то упустить.

Я пытаюсь импортировать DEFAULT_CONTENT_TYPE из файла настроек. Я не определяю это конкретно в моем файле settings.py, но я предполагал, что значение по умолчанию будет доступно.

Когда я добавляю эту переменную в свой settings.py, она работает нормально, но когда ее там нет, и я пытаюсь импортировать, я получаю ImportError при использовании сервера разработки с помощью команды runserver:

from settings import DEFAULT_CONTENT_TYPE
ImportError: cannot import name DEFAULT_CONTENT_TYPE

Разве я не могу сделать это, не добавляя его в мой файл settings.py?


person monkut    schedule 17.08.2011    source источник


Ответы (2)


Никогда не используйте from settings import ... или import settings. Это всегда будет импортировать только ваш модуль настроек, но не все настройки Django.

Вместо этого используйте from django.conf import settings во всех своих проектах Django. Это использует класс настроек Django, который является оболочкой для всех определенных настроек Django и настроек вашего проекта из вашего файла настроек.

Итак, для вашего примера вы должны получить доступ к DEFAULT_CONTENT_TYPE через settings.DEFAULT_CONTENT_TYPE.

person Torsten Engelbrecht    schedule 17.08.2011

settings относится к вашему проекту, поэтому он попытается импортировать DEFAULT_CONTENT_TYPE из вашего файла настроек. Если вы хотите использовать встроенный в Django параметр DEFAULT_CONTENT_TYPE, вам придется включить его из их библиотек (извините, Django не установлен на этом компьютере, иначе я бы поискал файл, в котором он определен).

Что-то вроде этого: from django.some.settings.file import DEFAULT_CONTENT_TYPE

Вы должны быть в состоянии найти его, просто grep просмотрев каталог Django lib.

person Demian Brecht    schedule 17.08.2011