You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django模板中变量比较判断失效问题求助

问题原因及解决方案

核心原因

Django模板中的user变量是当前登录用户的User模型实例,不是单纯的用户名字符串。你打印看到的user = juan只是Django对User对象做了默认字符串格式化(显示username字段值),但它的本质还是一个对象,而非字符串。

所以你写的{% if usuario.username == user %}是在拿字符串和User对象做相等判断,二者类型完全不同,自然永远不相等,代码会一直进入else分支。而对比字符串常量'juan'时,两边都是字符串类型,判断逻辑就正常生效了。

修正方案

有两种简单的修复方式:

方式1:对比双方的username字段(字符串对比)

把判断条件改成两边都是字符串类型:

{% if usuario.username == user.username %}
  Nothing
{% else %}
<tr><td>
{{usuario.username}}
<img src="{% static 'assets/img/icono_writeMSJ.png' %}" height="30px">
</td>
</tr>
{% endif %}

方式2:直接对比User对象(实例对比)

如果usuario本身就是User模型的实例,也可以直接对比对象本身,这样更严谨:

{% if usuario == user %}
  Nothing
{% else %}
<tr><td>
{{usuario.username}}
<img src="{% static 'assets/img/icono_writeMSJ.png' %}" height="30px">
</td>
</tr>
{% endif %}

内容的提问来源于stack exchange,提问作者kapi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 14:31:51