Django模板中外键关联值显示:如何展示用户名而非用户ID
解决Django ForeignKey关联显示用户名的问题
有两种实用方法可以替换当前显示的用户ID,改为展示用户名:
方法一:模板中直接访问关联对象的用户名字段
created_by关联的是myperso_user的实例,你可以通过instance属性获取到完整的用户对象,再直接访问其username字段。考虑到created_by可能为null,建议添加默认值避免页面报错:
<h4>--- {{ ctx_form.created_by.instance.username|default:"未指定" }} ---</h4>
方法二:修改用户模型的__str__方法
在myperso_user模型中定义__str__方法,让用户对象默认输出用户名。这种方法能全局生效,在Django admin、表单渲染等其他场景中,用户对象也会自动显示用户名:
class myperso_user(AbstractUser): location = models.TextField(blank=False, null=True) def __str__(self): return self.username # 将用户名设为对象的默认字符串展示内容
注意:如果继续使用
.value获取值,仍然会返回ID,因此配合你的现有模板写法,方法一的直接修改更高效。
内容的提问来源于stack exchange,提问作者vgr
相关产品推荐
相关产品推荐

