2

我肯定错过了什么。

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

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

from settings import DEFAULT_CONTENT_TYPE
ImportError: cannot import name DEFAULT_CONTENT_TYPE

我不应该能够做到这一点而不必将其添加到我的settings.py 文件中吗?

4

2 回答 2

5

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

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

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

于 2011-08-17T03:14:15.280 回答
0

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

像这样的东西: from django.some.settings.file import DEFAULT_CONTENT_TYPE

您应该能够grep通过您的 Django lib 目录找到它。

于 2011-08-17T02:49:31.577 回答