0

Djangoテンプレート内に、式がtrueと評価された場合は特定の色、そうでない場合は別の色のテキストを作成する条件があります。この例のように実際にHTMLにスタイルを含めるつもりはないことに注意してください。ただし、これにより、例を簡単に示すことができます。コードは次のとおりです。

    <div class="span6 resultsBox">
        <h2>Items:  
            {% if user.items >= user.itemsQuota %}
            <span id="items" style="color:green">{{ user.items}} </span>
            {% else %}
            <span id="items" style="color:white">{{ user.items }} </span>
            {% endif %} 
            / {{user.itemsQuota }}.
        </h2><br />
    </div>

私が何をしても、結果のspanテキストは緑色になります!通常、モデルとモデルの等式の計算方法に問題があると思いますが、出力がのようなものであっても100/1000、明らか{{ user.items }}により小さい場合{{ user.itemsQuota }}は、緑色のフォントが表示されます。条件文でここに何が欠けていますか?

4

1 に答える 1

3

私の推測でuser.itemsは、文字列とuser.itemsQuota数字です。Python(3.xより前)では、'100' > 1000はTrueです。

クイックデモ:

from django.template import Template, Context
from django.conf import settings

settings.configure()

t = Template('{% if a > b %} a > b {% else %} a <= b {% endif %}')
print t.render(Context({ 'a' : '100', 'b' : 1000 }))
print t.render(Context({ 'a' : 100  , 'b' : 1000 }))

プリント:

a > b 
a <= b 

テンプレートのみのソリューションが必要な場合、これは機能します。

t = Template('{% if a|add:"0" > b|add:"0" %} a > b {% else %} a <= b {% endif %}')

add値を整数に強制するため)

于 2013-03-26T13:47:39.340 に答える