2009-03-26 4 views
2

Python 2.6 + Ubuntu + Apache 2.2 + FastCGIで私のDjangoデプロイメントに固有の奇妙な問題があります。私のようなテンプレートを使用している場合はDjango boolをチェックするときにFastCGIでタグが動作しない場合のテンプレートTrue

は:

{% with True as something %} 
    {%if something%} 
     It Worked!!! 
    {%endif%} 
{%endwith%} 

は、それは、出力文字列は「それが働いた!!!」必要があります。 mod_fastcgiを使用している私のプロダクションサーバーにはありません。

これは、runserverを使用してローカルで実行すると完全に機能します。

私は便宜のためにコードを次のように修正し、問題は解決しました。

{% with "True" as something %} 
    {%if something%} 
     It Worked!!! 
    {%endif%} 
{%endwith%} 

ブール変数の[あなたが参照を取得する場合名声]テンプレートパーサは、FastCGIの下で実行する場合、Truthiness(またはTruthitude)を把握することができないようです。

誰でもこれを見ましたか?解決策はありますか?

答えて

3

Hmm ... Trueはdjangoテンプレート言語で有効なトークンではありませんか?どこかでゼロ以外の値を持つコンテキストに追加されていない限り、ローカルでどのように動作するかわかりません。したがって、私はあなたの第二の問題が最初の問題に関連していないかもしれないと思います。

+0

おそらくそれらは関連していません。 しかし、{%if%}タグのパラメータを理解する方法は、コンテキストを使用してresolve()メソッドに渡すことです。変数名に解決されると、変数名が割り当てられます。それ以外の場合、それはリテラルとして解釈されます(真の有効なリテラルです)。 –

+1

Trueは、デフォルトでテンプレート内の有効なリテラルではありません。 (ちょうど私がそれを確認するためにローカルでテストした正気のために) – muratgu

関連する問題