详解Django中的ifequal和ifnotequal标签使用
Django模板系统压根儿就没想过实现一个全功能的编程语言,所以它不允许我们在模板中执行Python的语句(还是那句话,要了解更多请参看理念和限制小节)。但是比较两个变量的值并且显示一些结果实在是个太常见的需求了,所以Django提供了{%ifequal%}标签供我们使用。
{%ifequal%}标签比较两个值,当他们相等时,显示在{%ifequal%}和{%endifequal%}之中所有的值。
下面的例子比较两个模板变量user和currentuser:
{%ifequalusercurrentuser%} <h1>Welcome!</h1> {%endifequal%}
参数可以是硬编码的字符串,随便用单引号或者双引号引起来,所以下列代码都是正确的:
{%ifequalsection'sitenews'%} <h1>SiteNews</h1> {%endifequal%} {%ifequalsection"community"%} <h1>Community</h1> {%endifequal%}
和{%if%}类似,{%ifequal%}支持可选的{%else%}标签:
{%ifequalsection'sitenews'%} <h1>SiteNews</h1> {%else%} <h1>NoNewsHere</h1> {%endifequal%}
只有模板变量,字符串,整数和小数可以作为{%ifequal%}标签的参数。下面是合法参数的例子:
{%ifequalvariable1%} {%ifequalvariable1.23%} {%ifequalvariable'foo'%} {%ifequalvariable"foo"%}
其他任何类型,例如Python的字典类型、列表类型、布尔类型,不能用在{%ifequal%}中。下面是些错误的例子:
{%ifequalvariableTrue%} {%ifequalvariable[1,2,3]%} {%ifequalvariable{'key':'value'}%}
如果你需要判断变量是真还是假,请使用{%if%}来替代{%ifequal%}。