Django:删除所有m2m关系

时间:2010-05-26 14:54:50

标签: django

如果我有两个简单的模型:

class Tag(models.Model):
    name = models.CharField(max_length=100)

class Post(models.Model):
    title = models.CharField(max_length=100)
    tags = models.ManyToManyField(Tag, blank=True)

给定一个带有多个标签add的Post对象,我知道要删除它们中的任何一个,但是如何进行批量删除(全部删除)?感谢

2 个答案:

答案 0 :(得分:22)

您是否尝试过Post.tags.clear()

答案 1 :(得分:-3)

如果您只需要删除2个模型之间所有实例的关系,那么您可以通过访问关系表的管理器来实现。可以通过MyModel.relations.through访问m2m关系表,以便删除关系变得容易:

MyModel.relations.through.objects.all().delete()

参考:

https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ManyToManyField.through