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

2 投票
2 回答
1636 浏览
提问于 2025-04-16 23:45

我一定是漏掉了什么。

我想从设置文件中导入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

撰写回答