66 votes

Comment supprimer toutes les relations de plusieurs à plusieurs ?

Dans un modèle, j'ai ceci :

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

et si je choisis :

 my_object.relations.remove(other_model_object)

Ça marche.

Comment supprimer tous les objets des relations ? my_object.relations.clean() ne fonctionne pas.

71voto

Brandon Points 11873

Tout d'abord, vous devrez effacer la ou les relations en utilisant .clear() ou .remove(), selon ce qui convient le mieux à vos besoins selon la documentation .

Après cela, vous devrez supprimer le ou les objets en utilisant [YourModel]. méthode delete ().

10voto

camara90100 Points 122

Utiliser my_object.relations.clear()

3voto

Daniel Holmes Points 1666

Pour supprimer tous les objets liés sans les supprimer, utilisez simplement :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X