【问题标题】:Strange (atleast for me) behavior in Django templateDjango模板中的奇怪(至少对我来说)行为
【发布时间】:2010-05-27 10:58:58
【问题描述】:

Django 模板 (v 1.1) 中的以下代码 sn-p 不起作用。

{{ item.vendors.all.0 }} ==> returns "Test"

但是下面的代码sn-p,并没有隐藏段落!

{% ifnotequal item.vendors.all.0 "Test" %}
<p class="view_vendor">Vendor(s): {{item.vendors.all.0}} </p><br />
{% endifnotequal %}

有什么提示吗?

谢谢。

【问题讨论】:

    标签: python django django-templates


    【解决方案1】:

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

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

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

    【讨论】:

    • 或ifnotequal item.vendors.all.0.name "Test",其中name是相关的模型字段。
    • 我意识到它正在返回“供应商”对象,即 unicode 方法在我打印时被调用,但在我比较它们时没有被调用。但是当我打印“名称”时,模型字段为空......但解决方案工作正常。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2011-08-06
    • 1970-01-01
    • 1970-01-01
    • 2012-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-18
    相关资源
    最近更新 更多