Python 使用_raw_Delete从多个表中删除条目

Python 使用_raw_Delete从多个表中删除条目,python,django,Python,Django,我的数据库中有大量的数据。 我无法使用.delete()方法,因为在我的例子中,Django ORM的性能不足。 _raw_delete()方法适合我,因为我可以用python代替raw SQL。 但我有一个问题,我不知道如何使用_raw_delete删除关系表。它们需要在模型导致我在DB中有限制之前删除。有什么办法可以做到这一点吗?我找到了解决办法。 您可以使用以下命令对链接模型进行操作: link_model = MyModel._meta.get_field('my_m2m_field')

我的数据库中有大量的数据。 我无法使用.delete()方法,因为在我的例子中,Django ORM的性能不足。 _raw_delete()方法适合我,因为我可以用python代替raw SQL。 但我有一个问题,我不知道如何使用_raw_delete删除关系表。它们需要在模型导致我在DB中有限制之前删除。有什么办法可以做到这一点吗?

我找到了解决办法。 您可以使用以下命令对链接模型进行操作:

link_model = MyModel._meta.get_field('my_m2m_field').remote_field.through
qs = link_model.objects.filter(mymodel_id__in=mymodel_ids)
qs._raw_delete(qs.db)
我找到了解决办法。 您可以使用以下命令对链接模型进行操作:

link_model = MyModel._meta.get_field('my_m2m_field').remote_field.through
qs = link_model.objects.filter(mymodel_id__in=mymodel_ids)
qs._raw_delete(qs.db)

对于外键报复,可以对delete cascade进行限制。我忘了提到。级联在这里不是一个选项。对于外键报复,您可以对删除级联进行限制。我忘了提到。级联在这里不是一个选项。