Django的settings.py模板变量(Django settings.py variable

2019-06-27 12:29发布

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

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 }}已评估不了了之。 没有人知道为什么会这样呢? 谢谢!

UPDATE

我试图创建一个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",
)

Answer 1:

创建一个名为context_processors.py和写入以下背景处理器:

from django.conf import settings

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

然后加入your.location.context_processors.cardspringTEMPLATE_CONTEXT_PROCESSORS在你的Django设置文件,其中your.location是你的位置context_processors.py文件。



文章来源: Django settings.py variables in templates