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

Django技术问题:如何获取创建者用户名而非ID?item.r.username无效

问题原因与解决方案

核心错误

你在模板中的字段访问逻辑有误:

  • Rec 模型本身没有 username 字段,username 是关联用户模型的属性,必须通过外键字段 creator 间接访问,不能直接写 {{ item.r.username }}。
  • 模板里的 {{ item.r.author_id }} 同样错误,模型中外键字段名为 creator,对应的ID字段应为 creator_id 或 creator.id。

修正后的模板代码(lists.html)

{% for item in lists %}
    {{ item.r.creator.username }}  {# 正确访问关联用户的用户名 #}
    {{ item.r.creator_id }}        {# 正确获取外键对应的ID #}
    {{ item.r.bornplace }}
{% endfor %}

可选代码优化

你的views.py里将QuerySet转为字典列表的操作完全多余,直接传递QuerySet给模板更简洁:

# views.py 优化版
def lists(request):
    rec_list = Rec.objects.all()
    context = {'rec_list': rec_list}
    return render(request, 'lists.html', context)

对应简化后的模板:

{% for item in rec_list %}
    {{ item.creator.username }}
    {{ item.creator_id }}
    {{ item.bornplace }}
{% endfor %}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 00:50:29