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

Django如何查询多对多字段包含指定对象的全部记录?

实现方法

你可以直接在Django ORM的filter方法中同时传入两个多对多字段的匹配条件,ORM会自动处理中间表的关联查询,返回同时满足两个关联条件的联系人实例,写法如下:

  • 已有city实例和title实例时的查询代码:
# 假设你已经获取到了指定城市实例city_obj、指定职称实例title_obj
matched_contacts = Contact.objects.filter(city=city_obj, title=title_obj)
  • 只有城市名称、职称名称,没有对应实例时,可以跨关联表查询:
matched_contacts = Contact.objects.filter(
    city__name="纽约",
    title__title_name="律师"
)

说明

这种写法默认是逻辑与的匹配规则,完全符合「同时关联两个对象」的查询需求,ORM会自动去重,不会返回重复的Contact实例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 04:30:01