lud0h
lud0h

Reputation: 2390

Strange (atleast for me) behavior in Django template

The following code snippet in a Django template (v 1.1) doesn't work.

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

but the following code snippet, doesn't hide the paragraph!

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

Any tips on what's wrong?

Thanks.

Upvotes: 2

Views: 73

Answers (1)

interjay
interjay

Reputation: 110108

item.vendors.all.0 doesn't return "Test": It returns a vendor object, which gives "Test" when converted to a string. If you just compare the object with "Test", it will never be equal.

Try converting the object to a string before comparing:

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

Upvotes: 6

Related Questions