web-dev-qa-db-fra.com

Comment supprimer un enregistrement dans les modèles Django?

Je veux supprimer un enregistrement particulier. Tel que

delete from table_name where id = 1;

Comment puis-je faire cela dans un Django model?

214
user426795

Il y a deux manières:

Pour le supprimer directement:

SomeModel.objects.filter(id=id).delete()

Pour le supprimer d'une instance:

instance = SomeModel.objects.get(id=id)
instance.delete()
433
Wolph
MyModel.objects.get(pk=1).delete()

cela déclenchera une exception si l'objet avec la clé primaire spécifiée n'existe pas, car il tente d'abord de récupérer l'objet spécifié.

MyModel.objects.filter(pk=1).delete()

cette exception ne déclenchera pas d'exception si l'objet associé à la clé primaire spécifiée n'existe pas et produit directement la requête

DELETE FROM my_models where id=1
21
Milad Kh

Wolph a fourni une bonne réponse axée sur les codes. Laissez-moi simplement coller officiel doc ici, à titre de référence.

4
VicX

Si vous souhaitez supprimer un élément

wishlist = Wishlist.objects.get(id = 20)
wishlist.delete()

Si vous souhaitez supprimer tous les éléments de la liste de souhaits, par exemple

Wishlist.objects.all().delete()
2
lilhamad