Подтвердить что ты не робот

Как удалить все отношения с manytomany?

В одной модели у меня есть это:

class MyModel(models.Model):
    relations = models.ManyToManyField(OtherModel)
    ....

и если я выберу:

my_object.relations.remove(other_model_object)

это работает.

Как убрать все объекты из отношений? my_object.relations.clean() не работает.

4b9b3361

Ответ 1

Во-первых, вам необходимо очистить отношения с помощью .clear() или .remove(), в зависимости от того, что больше соответствует вашим потребностям в соответствии с документацией.

После этого вам необходимо удалить объект с помощью метода [YourModel].delete().

Ответ 2

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

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

ссылка:

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

Ответ 3

Чтобы удалить все связанные с объекты, не удаляя их, просто используйте:

my_object.relations.remove(*my_object.relations.all())

Ответ 4

Используйте my_object.relations.clear()