Python Django模板标记比较不起作用
我试图比较Django模板标记中的两个值,但它并不像我期望的那样工作。以下是我的模板标记的外观:Python Django模板标记比较不起作用,python,django,Python,Django,我试图比较Django模板标记中的两个值,但它并不像我期望的那样工作。以下是我的模板标记的外观: <ul> {% for c in category %} {% ifequal c.name|stringformat:"%s" values.project_category|stringformat:"%s" %} <li>Values equal ({{c.name}}:{{values.project_category}})</li> {% else %}
<ul>
{% for c in category %}
{% ifequal c.name|stringformat:"%s" values.project_category|stringformat:"%s" %}
<li>Values equal ({{c.name}}:{{values.project_category}})</li>
{% else %}
<li>Values differ ({{c.name}}:{{values.project_category}})</li>
{% endifequal %}
{% endfor %}
</ul>
从输出中可以看到,值不相等(值项不显示,因为它们不存在)。我做错了什么?我认为这一定是一个键入问题,这就是为什么我选择使用stringformat
修饰符,但这似乎没有什么区别。问题是在stringformat过滤器中使用“%s”。筛选器将删除前导的%:
因此,您只需将两个字符串转换为文字“%s”,并且由于“%s”==“s”,您的ifequal始终为true
Values equal (One:)
Values equal (Two:)
Values equal (Three:)