2012-08-28 14 views
7

非常に奇妙なエラーが発生しました。テンプレートのDjango settings.py変数

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

これは1を除いて、私のサイトでは、ほぼすべてのページで動作します:私はそうのような私settings.pyファイルに定義されているアプリの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内の適切な場所に追加することを確認しました。私はまだすべての運を持っていない - それは1ページではなく、テンプレートがこのコマンドで呼び出された2

UPDATEに評価されます。

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

UPDATE 3は、それが動作するようになった - 私のsettings.pyにこれを追加する必要が

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

テンプレートに 'CARDSPRING_APP_ID'という値を与えるコンテキストプロセッサがありますか? –

+0

私はよくわかりません - どうすれば確認できますか?私は 'CARDSPRING_APP_ID'がサイト内の他のページで適切に評価されていることを知っていますが、これだけではありません。 – mythander889

+0

どのように' CARDSPRING_APP_ID'をそれらのページに渡しますか?とにかくそれをコンテキスト・プロセッサーとして追加するほうが、自動的にすべてのページに追加するほうが良いかもしれません。 –

答えて

8

ファイルを作成しますcontext_processors.pyと呼ばれ、次のコンテキスト・プロセッサを書く:

from django.conf import settings 

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

その後your.locationがあなたのcontext_processors.pyファイルの場所ですDjango設定ファイルにTEMPLATE_CONTEXT_PROCESSORSyour.location.context_processors.cardspringを追加します。

+0

私は 'settings.py'を見ていますが、' TEMPLATE_CONTEXT_PROCESSORS 'は表示されません。私はこれを追加する必要がありますか? – mythander889

+0

@ mythander889:はい、それがない場合は追加してください。デフォルト値(https://docs.djangoproject.com/en/1.4/ref/settings/#template-context-processorsを参照)も追加してから、独自のコンテキストプロセッサを追加してください。 –

+0

私はあなたの[ここ](http://www.b-list.org/weblog/2006/jun/14/django-tips-template-context-processors/)から少し助けを借りて説明したように追加しましたが、まだ運がなかった。 htmlファイル自体に何かを含める必要がありますか?それは私が考えることができる唯一のことである可能性があります – mythander889

関連する問題