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

Django模板if判断失效:已登录用户项目匹配条件始终不成立

问题分析与解决
  • 核心原因:类型不匹配
    你看到{{ projectuser.User }}和{{ user.username }}输出一致,是因为Django模板渲染User对象时,会自动调用其__str__方法(默认返回用户名),但实际上projectuser.User是User模型的实例对象,而user.username是字符串类型的用户名。直接用对象和字符串做相等比较,结果必然为False。

  • 解决方法
    修改条件判断,比较两者的username属性即可:

    {% if projectuser.User.username == user.username %}
    
  • 额外优化建议

    1. Django模型字段名通常遵循小写命名规范,建议将模型中的User字段改为user,既符合PEP8规范,也避免与User模型类名混淆。
    2. 若后续遇到类似类型排查问题,可在模板中添加调试输出查看变量实际类型:
      {{ projectuser.User|pprint }}
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 01:37:16