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

如何在Django中批量删除多对多关联的非活跃用户?

Django批量移除多对多关联中状态为inactive的用户

不用循环逐个调用remove,可以直接操作多对多关系的中间表,通过ORM批量删除关联记录,仅需1次数据库查询就能完成:

批量移除所有公司关联的inactive用户

如果要移除所有Company实例关联的状态为inactive的用户,直接操作自动生成的中间表模型:

# 利用多对多关系的through模型批量删除
Company.customers.through.objects.filter(
    user__active=False
).delete()

移除单个公司关联的inactive用户

如果仅针对某个特定Company实例,在过滤条件中加入该公司即可:

target_company = Company.objects.get(pk=你的公司ID)
target_company.customers.through.objects.filter(
    company=target_company,
    user__active=False
).delete()

这种方式完全基于Django ORM实现,无需编写原生SQL,相比循环调用remove能大幅减少数据库查询次数,效率提升明显。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 11:50:56