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

Django模板判断Ad_company的contract_user与当前用户相等不生效如何解决

Django模板相等判断不生效问题解决

问题根源

  • 你传入模板的adlist是Django Paginator分页组件返回的分页页对象,并非单条Ad_company模型实例,直接调用adlist.contract_user无法获取到单条数据的contract_user字段值
  • 对比的两个值类型不匹配:contract_user是存储用户名字符串的CharField字段,模板中的user是Django内置的用户模型对象,二者类型不同,即使存储的用户名一致也不会判定相等

修复方案

1. 模板中先遍历分页列表获取单条广告实例

你需要先循环adlist拿到每一条Ad_company实例后,再针对单条数据做判断

2. 调整判断逻辑,对比同类型的用户名字符串

将判断条件修改为对比单条广告的contract_user和user.username(登录用户的用户名字符串)

修复后的模板代码示例

{% for ad in adlist %}
<!-- 你的其他广告展示代码 -->
{% if ad.contract_user == user.username %}
<span class="ad-state full-time">contract</span>
{% endif %}
{% endfor %}

可选调试方案

如果修改后仍不生效,可以在判断逻辑前临时加入以下代码,确认输出的两个值是否完全一致:

<p>当前广告条目contract_user值:{{ ad.contract_user }}</p>
<p>当前登录用户用户名:{{ user.username }}</p>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 04:24:04