コンテキスト変数 (例: 'woot') を None に設定するか、単に未定義のままにしておくと....
{% if woot %} うん!{% endif %}
あなたが期待することをします(何もしません)。しかし、そうする場合:
{% if woot == True %} うん!{% endif %}
「うん!」と出力されます。woot が None / undefined であっても。それは非常に直感的ではないようです。明らかに、これを回避できます...しかし、根本的な原因を理解したいと思います。なぜそれが起こるのか....?
証拠:
from django.template import Context, Template
x = Template("{% if woot %}Yeah!{% endif %}")
y = Template("{% if woot == True %}Yeah!{% endif %}")
x.render( Context( {} )) # => u''
y.render( Context( {} )) # => u'Yeah!'
x.render( Context( {'woot':None} )) # => u''
y.render( Context( {'woot':None} )) # => u'Yeah!'
これはDjango 1.4.3にあります