1

我有两个模型,它们之间存在一对多关系:

class HomeCarrier(models.Model) 
    short_name = models.CharField(max_length=32, unique=True)

class CarrierZipCoverage(models.Model):
    zip_code = models.CharField(max_length=5)
    home_carrier = models.ForeignKey('HomeCarrier', null=True, blank=True)

根据文档

您还可以批量删除对象。每个 QuerySet 都有一个 delete() 方法,用于删除该 QuerySet 的所有成员。

根据消息来源的评论

删除实际上是 2 个查询 - 一个用于查找相关对象,一个用于删除。

当我尝试批量删除 27k 运营商的覆盖邮政编码时,我感到很惊讶

carrier.carrierzipcoverage_set.all().delete()

我对数据库中的每一百行都有一个删除查询。而我希望一次在 mysql 日志中只看到一个删除查询,用于所有覆盖邮政编码。

mysql日志

问题是有没有一种方法可以通过单个删除查询从数据库中删除所有实体而不求助于原始 sql

4

0 回答 0