Джанго: удалить все отношения m2m - PullRequest
7 голосов
/ 26 мая 2010

если у меня есть две простые модели:

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)

учитывая объект Post с несколькими тегами add, я знаю, что горячо удалить любой из них, но как сделать массовое удаление (удалить все)? Спасибо

Ответы [ 2 ]

22 голосов
/ 26 мая 2010

Вы пробовали Post.tags.clear()?

0 голосов
/ 13 ноября 2012

Если вам нужно удалить только связь для всех экземпляров между двумя моделями, вы можете сделать это, открыв диспетчер таблицы взаимосвязей. Доступ к таблице отношений m2m можно получить через MyModel.relations.through, поэтому для удаления связей это становится легко:

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

справка:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...