如何获取在settings.py中未定义的Django默认设置值?
我一定是漏掉了什么。
我想从设置文件中导入DEFAULT_CONTENT_TYPE这个变量。虽然我在settings.py文件里没有特别定义它,但我以为默认的设置应该是可以用的。
当我把这个变量加到settings.py里时,一切都正常,但如果没有这个变量,当我尝试导入时,就会在使用开发服务器的runserver命令时出现ImportError错误:
from settings import DEFAULT_CONTENT_TYPE
ImportError: cannot import name DEFAULT_CONTENT_TYPE
难道我不应该能在不把它加到我的settings.py文件里的情况下就使用它吗?
2 个回答
0
settings
是和你的项目相关的,所以它会尝试从 你的 设置文件中导入 DEFAULT_CONTENT_TYPE
。如果你想使用 Django 自带的 DEFAULT_CONTENT_TYPE
设置,你需要从他们的库中引入它(抱歉,我这台机器上没有安装 Django,不然我可以帮你查一下它定义在哪个文件里)。
大概是这样的:
from django.some.settings.file import DEFAULT_CONTENT_TYPE
你可以通过在 Django 的库目录里用 grep
命令搜索来找到它。
5
不要使用 from settings import ...
或 import settings
。这样做只会导入你自己的设置模块,而不会导入整个Django的设置。
在你所有的Django项目中,应该使用 from django.conf import settings
。这样做是为了使用Django的设置类,它把所有Django定义的设置和你项目中的设置文件结合在一起。
所以在你的例子中,你可以通过 settings.DEFAULT_CONTENT_TYPE
来访问 DEFAULT_CONTENT_TYPE
。