在Django中用Filter获取外键关联数据:仅获取assigned_user信息
加载Django需求模型的关联用户数据
当前你的查询仅获取了Requirement表本身的数据,当后续访问每条需求的assigned_user属性时,Django会为每条数据单独发起一次SQL查询,产生N+1的性能问题。要一次性加载关联的assigned_user完整数据,只需在查询中使用select_related()方法:
requirementsOb = Requirement.objects.filter(user=currentUser).select_related('assigned_user')
说明
select_related()适用于多对一/一对一的关联字段(比如这里的ForeignKey),它会通过SQL JOIN操作,将关联表的字段一同查询并加载到内存中。- 执行上述查询后,直接访问
requirement.assigned_user就能获取完整的用户数据,不会触发额外的数据库请求。
内容的提问来源于stack exchange,提问作者Smith
相关产品推荐
相关产品推荐

