如何获取未在settings.py文件中定义的django默认设置值?

时间:2011-08-17 02:41:32

标签: python django django-settings

我一定错过了什么。

我正在尝试从设置文件中导入DEFAULT_CONTENT_TYPE。 我没有在我的settings.py文件中专门定义它,但我假设默认值可用。

当我将此变量添加到我的settings.py时,它工作正常,但是当它不存在并且我尝试导入时,通过runserver命令使用开发服务器时会得到ImportError:

from settings import DEFAULT_CONTENT_TYPE
ImportError: cannot import name DEFAULT_CONTENT_TYPE

我不应该在不必将其添加到 my settings.py文件的情况下执行此操作吗?

2 个答案:

答案 0 :(得分:5)

绝不是用户from settings import ...import settings。这将始终只导入您的设置模块,而不是整个Django设置。

在所有Django项目中使用from django.conf import settings。这是使用Django Settings类,它是所有Django定义的设置和设置文件中的项目设置的包装。

因此,对于您的示例,您可以通过DEFAULT_CONTENT_TYPE访问settings.DEFAULT_CONTENT_TYPE

答案 1 :(得分:0)

settings与您的项目相关,因此它会尝试从您的设置文件中导入DEFAULT_CONTENT_TYPE。如果你想使用Django的内置DEFAULT_CONTENT_TYPE设置,你必须从他们的库中包含它(抱歉,没有在这台机器上安装Django,否则我会查找它定义的文件在)。

这样的事情: from django.some.settings.file import DEFAULT_CONTENT_TYPE

你应该只能通过你的Django lib目录grep找到它。