我一定错过了什么。
我正在尝试从设置文件中导入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文件的情况下执行此操作吗?
答案 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
找到它。