Django中如何通过User模型关联获取UserInfo的real_name字段并渲染到模板
问题原因
- Article模型关联User的外键字段名为
author,你模板中使用的current_article.user_id仅能获取到数据库存储的用户ID整数值,无法获取到关联的User对象,自然无法进一步查询关联的UserInfo数据。 - User和UserInfo的一对一关联设置了
related_name='userinfo',需要通过该反向关联属性才能从User对象获取到对应的UserInfo记录。
正确模板写法
{{ current_article.author.userinfo.real_name }}
补充优化建议
- 为避免关联数据不存在时模板报错,可以加模板过滤器做容错处理:
{{ current_article.author.userinfo.real_name|default:"暂无实名信息" }} - 视图查询时可使用
select_related预加载关联数据,避免N+1查询问题,修改视图中的查询语句为:current_article = Article.objects.select_related('author__userinfo').get(id=1)
内容的提问来源于stack exchange,提问作者Ryan
相关产品推荐
相关产品推荐

