python - 模板中的 Django settings.py 变量

标签 python django django-templates django-settings

我遇到了一个非常奇怪的错误。我在我的 settings.py 文件中定义了一个应用程序 ID,如下所示:

CARDSPRING_APP_ID = '################'

这几乎适用于我站点中的每个页面,只有一个页面除外。奇怪的是,其他变量起作用了。在页面的脚本部分,我有以下内容:

alert("cs appid=" + {{ CARDSPRING_APP_ID }} + 
" sectoken=" + {{ securityToken }} + 
" timestamp= " +{{ timestamp }} + 
" hash = " + {{ digestedHash }} + 
" ccnum " + $('.card-number').val() + 
" exp" + $('.expiration-month').val() + $('.expiration-year').val() + 
" user = " + {{ csid }});

当页面被呈现时,它评估为这个

alert("cs appid=" +  + 
" sectoken=" + DDFJRMZXD12WVWHFFC###### + 
" timestamp= " +1346183125 + 
" hash = " + a929b3aec9179c700c09d###### + 
" ccnum " + $('.card-number').val() + 
" exp" + $('.expiration-month').val() + $('.expiration-year').val() + 
" user = " + SG1###);

重要的是,{{ CARDSPRING_APP_ID }} 的计算结果为空。有谁知道为什么会这样?谢谢!

更新

我尝试创建一个 context_processors.py 文件,如下面的答案所述,并确保将其添加到 settings.py 中的适当位置。我仍然没有任何运气——它在一页上评估,但在另一页上不评估

更新 2

使用此命令调用模板:

return render_to_response('howto'+str(number)+'.html',locals(),context_instance= RequestContext(request))

更新 3 让它工作——需要将其添加到我的 settings.py

TEMPLATE_CONTEXT_PROCESSORS = global_settings.TEMPLATE_CONTEXT_PROCESSORS + (
    "myapp.context_processors.cardspring",
)

最佳答案

创建一个名为 context_processors.py 的文件并编写以下上下文处理器:

from django.conf import settings

def cardspring(request):
    return { 'CARDSPRING_APP_ID': settings.CARDSPRING_APP_ID }

然后将 your.location.context_processors.cardspring 添加到 Django 设置文件中的 TEMPLATE_CONTEXT_PROCESSORS 中,其中 your.location 是你的位置context_processors.py 文件。

关于python - 模板中的 Django settings.py 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12166537/

相关文章:

django - 使用Django在我的模板库中显示一个表单

python - 什么相当于 virtualenv(python)中的 $HOME - 专门用于 matplotlibrc

python - django admin 为计算字段启用排序

python - 类型错误:Python 中 + 不支持的操作数: 'dict' 和 'str'

python - 使用后退按钮后防止重新填充和/或重新提交 Django 表单

django - 如何将 URL 参数传递给 django CBV?

django - 检查对象是否在相关对象的QuerySet中

Django:如何从模板中包含 View

python - 如何将图像矩阵(来自 opencv)保存到 xlsx 文件?

python - 为什么这段代码在 Linux 上有效,但在 Windows 上却无效?