簡體   English   中英

Django模板如果條件

[英]django template if condition

在這里有一個問題。

我有以下

{% if form.tpl.yes_no_required == True  %}
             <!-- path 1 -->
{% else %}
    {% if form.tpl.yes_no_required == False %}

        <!-- path 2 -->
    {% endif %} 
{% endif %}

form.tpl.yes_no_required的值為None,但是我被路由到路徑2。請問有人可以解釋為什么會這樣嗎? 編輯:如果該值是無,我不希望它顯示任何內容。

您不能使用模板語言來測試您認為是常量的東西,解析器實際上正在測試2個“文字”。

解析器測試兩個名稱為“ None”和“ False”的文字。 當解析器嘗試在上下文中解析這些變量時,將拋出VariableDoesNotExist異常,並且兩個對象都解析為python值None和None == None。

from django.template import Context, Template
t = Template("{% if None == False %} not what you think {% endif %}")
c = Context({"foo": foo() })

打印你不是你的想法

c = Context({'None':None})
t.render(c)

打印你不是你的想法

c = Context({'None':None, 'False':False})
t.render(c)

打印你

None!= False None!= True也...對所有項目都做類似這樣的事情

{% if form.tpl.yes_no_required  %}
             <!-- path 1 -->
{% else %}
    {% if not form.tpl.yes_no_required %}

        <!-- path 2 -->
    {% endif %} 
{% endif %}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM