django中{%if%}和{%ifequal}%之间有什么区别?

时间:2016-03-11 06:41:01

标签: django django-templates

在django模板中,我同时使用if和ifequal但没有注意到它们之间的区别。两者都有性能差异吗?

2 个答案:

答案 0 :(得分:2)

{% ifequal a b %}只是{% if a == b %}的简写语法。请注意ifequal被认为已过时,不应使用。 Django's docs

答案 1 :(得分:0)

ifequal源代码中的重要代码行来自其基础节点

if (self.negate and val1 != val2) or (not self.negate and val1 == val2):

Source

此节点还处理ifnotequal这是self.negate的用途,但在这种情况下negate为false,因此它只评估val1是否等于val2,相当于{% if val1 == val2 %}

if相当于python的if语句,它可以评估条件以决定是否显示上下文块