Django模板之间的差异{{和{%与某些数据

时间:2014-05-22 10:24:00

标签: django if-statement django-templates

<script>
    _UserGroup = "{{user.groups.all.0}}"
    console.log(_UserGroup) // prints "Admin"
</script>
{% if user.groups.all.0 == "Admin" %}
    Hello admin // never appears, i assume ^ this fails
{% endif %}

我不明白为什么JS部分按预期工作,但{%}}部分总是失败

任何指示都会受到赞赏,欢呼!

1 个答案:

答案 0 :(得分:1)

因为user.groups.all.0不是字符串,而是Group对象。因此,如果将其与字符串进行比较,则比较失败。您应该将其更改为

{% if user.groups.all.0.name == "Admin" %}

{% endif %}

当你打印{{user.groups.all.0}}时它不会失败(或引发错误),因为当你做这样的事情时,那么Class或对象的unicode方法踢出并将其名称打印为字符串。