django比较相等或者不相等的模板语法ifequal / ifnotequal


发布时间:2019-02-15 13:08    作者: Uncle Hui   已过去:1 年,7 月   阅读总量:216 已被赞:0


ifequal / ifnotequal
     在模板语言里比较两个值并且在他们一致的时候显示一些内容,Django提供了 ifequal 和 ifnotequal 标签。
     ifequal 标签比较两个值,如果相等,则显示{% ifequal %}和{% endifequal %}之间的所有内容
     ifnotequal 标签 与 ifequal 对应,当两个值不相等时显示。
     与 if 标签一样,ifequal 和 ifnotequal标签也支持 else 标签,但不支持elif,可以在else里面嵌套if语句。
     参数可以是硬编码的 string(单引号和双引号均可),也可以是数字,但不能是 True 或者 False 。
     其它的参数类型,如字典、列表或 boolean 不能硬编码在 ifequal 和 ifnotequal标签里面。
     如果你需要测试某个变量是 True 或 False, 用 if 标签即可;用 ifequal标签与 1, 0 比较也可以。
     只能两个参数,不能多也不能少。

        {# 如果 a1 == a2 则显示 #}
        {% ifequal a1 a2 %}
            <h1>equal!</h1>
        {% else %}
            <h1>not equal!</h1>
        {% endifequal %}

        {# 如果 a1 != a2 则显示 #}
        {% ifnotequal a1 a2 %}
            <h1>not equal!</h1>
        {% endifnotequal %}


        {# 如果 a1 == 'word' 则显示 #}
        {% ifequal a1 'word' %}
            <h1>a1=word</h1>
        {% endifequal %}

        {# 如果 a2 == 55.23 则显示 #}
        {% ifequal a2 55.23 %}
            <h1>a2=55.23</h1>

        {% endifequal %}

{# 如果 a3 == {{ a4 }} 则显示 #}
        {% ifequal a2 {{ a4 }} %}
            <h1>a2={{ a4 }}</h1>
        {% endifequal %}

注意结束使用endifequal或者endifnotequal。

     可以使用 if 标签的“==”比较来代替此标签,如:

 {% if a1 == 'a' %}

<h1>a1=a2</h1>

{% endif %}


如果在模板里要比较连个量是否相等,要注意数的是字符串还是纯数字型,就要转换,转换成int型,应该用  stringformat

{% if citydict.id|stringformat:'i' == city_id %}

点赞

0




登陆后方可评论