1

我正在尝试做一些非常愚蠢的事情:在 Django 模板中显示一些设置变量(使用 Django 1.5)。所以,如果我试试这个:

<p>Timezone: {{ TIME_ZONE }}</p>

我得到了我的设置文件中定义的时区。到现在为止还挺好。

但是现在,假设我定义了这个新设置:

FOO = 'bar'

并尝试:

<p>Foo: {{ FOO }}</p>

我看不到变量的值。为什么?

我知道我可以将变量从视图传递给模板,但是如果我想在一个地方为我的项目定义名称和描述并在任何模板中显示它们怎么办?这是我想做的简单任务之一。

这种问题表明我没有正确地做事(意思是“Django 认为应该如何做”),但我不知道为什么。

4

1 回答 1

4

您的模板中有一个可用的 TIME_ZONE 变量,因为您django.core.context_processors.tz在设置中启用了上下文处理器。
参考:https ://docs.djangoproject.com/en/dev/topics/i18n/timezones/#get-current-timezone 。

对于其他设置,您需要编写自己的上下文处理器或从视图发送设置值。
您可以像这样导入项目的设置:from django.conf import settings.
文档建议使用它而不是您的本地设置文件。

您可以在此处找到详细信息:https ://docs.djangoproject.com/en/dev/topics/settings/#using-settings-in-python-code

于 2013-11-14T19:18:29.977 回答