【问题标题】:How do I obtain django default settings values NOT defined in my settings.py file?如何获取我的 settings.py 文件中未定义的 django 默认设置值?
【发布时间】:2011-10-28 13:56:13
【问题描述】:

我一定是错过了什么。

我正在尝试从设置文件中导入 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 文件中就可以做到这一点吗?

【问题讨论】:

    标签: python django django-settings


    【解决方案1】:

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

    类似这样的: from django.some.settings.file import DEFAULT_CONTENT_TYPE

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 是的,正如the documentation中提到的那样。
      • 他们将其隐藏在文档中。他们如何期望任何人在那里找到它?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-01
      • 1970-01-01
      • 2021-05-29
      • 1970-01-01
      • 2014-06-16
      • 2021-10-30
      相关资源
      最近更新 更多