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

如何通过Django ORM按多对多字段关联展开查询集?

Django ORM展开多对多字段查询方案

要将MyUser的多对多skills字段展开为每条用户-技能对应的独立记录,可以通过跨表取值的方式实现,具体ORM查询语句如下:

from django.db.models import F

MyUser.objects.values(
    'email',
    'city',
    skills=F('skills__name')
).order_by('email', 'city', 'skills')

说明:

  • 使用values()方法指定需要输出的字段,其中skills__name关联到Skill模型的name字段,通过F()表达式将其重命名为skills,匹配你需要的输出字段名。
  • order_by()用于保证结果按用户邮箱、城市和技能名称排序,让输出结构更规整。
  • 该查询会自动关联多对多中间表,将每个用户的每个技能拆分为单独的记录,最终返回5条符合要求的数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 00:25:26