Python Django模板中奇怪的(至少对我来说)行为

Python Django模板中奇怪的(至少对我来说)行为,python,django,django-templates,Python,Django,Django Templates,Django模板(v1.1)中的以下代码段不起作用 {{ item.vendors.all.0 }} ==> returns "Test" 但是下面的代码片段并没有隐藏段落 {% ifnotequal item.vendors.all.0 "Test" %} <p class="view_vendor">Vendor(s): {{item.vendors.all.0}} </p><br /> {% endifnotequal %} {%ifnoteq

Django模板(v1.1)中的以下代码段不起作用

{{ item.vendors.all.0 }} ==> returns "Test"
但是下面的代码片段并没有隐藏段落

{% ifnotequal item.vendors.all.0 "Test" %}
<p class="view_vendor">Vendor(s): {{item.vendors.all.0}} </p><br />
{% endifnotequal %}
{%ifnotequal item.vendors.all.0“测试”%}
供应商:{{item.vendors.all.0}


{%endifnotequal%}
有什么问题的提示吗


谢谢。

item.vendors.all.0
不返回
“Test”
:它返回一个vendor对象,当转换为字符串时,会给出
“Test”
。如果您只是将对象与
“Test”
进行比较,它将永远不会相等

在比较之前,请尝试将对象转换为字符串:

{% ifnotequal item.vendors.all.0|stringformat:"s" "Test" %}

或者
ifnotequal item.vendors.all.0.name“Test”
,其中
name
是相关的模型字段。我意识到它返回的是“vendor”对象,即在打印时调用unicode方法,但在比较它们时不调用。但是当我打印“name”时,model字段是空的……但是解决方案工作得很好。谢谢