Джанго массового удаления удаляет только сто строк в то время,

Обновить

April 2019

Просмотры

46 раз

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 имеет метод удаления (), который удаляет все элементы этого QuerySet.

В соответствии с исходными комментариями

Удаления на самом деле 2 запросов - один для поиска похожих объектов, и один для удаления.

Я удивлён, когда я пытаюсь навалом удалить 27K почтового покрытия кодов перевозчика

carrier.carrierzipcoverage_set.all().delete()

Я получил один запрос на удаление для каждой сотни строк в базе данных. В то время как я ожидал увидеть только один запрос на удаление в журнале MySQL для всех почтовых кодов покрытия в то время.

журнал MySQL

Вопрос, есть ли способ , чтобы удалить все объекты из базы данных с одного удаления запроса , не прибегая к сырым SQL ?

0 ответы