464 votes

Comment supprimer un enregistrement dans les modèles Django ?

Je veux supprimer un enregistrement particulier. Par exemple

delete from table_name where id = 1;

Comment puis-je faire cela dans un modèle django ?

798voto

Wolph Points 28062

Il y a plusieurs façons de procéder :

Pour le supprimer directement :

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

Pour le supprimer d'une instance :

instance = SomeModel.objects.get(id=id)
instance.delete()

82voto

Milad Kh Points 831
MyModel.objects.get(pk=1).delete()

Ceci va lever une exception si l'objet avec la clé primaire spécifiée n'existe pas parce que d'abord il essaie de récupérer l'objet spécifié.

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

cela ne soulèvera pas d'exception si l'objet avec la clé primaire spécifiée n'existe pas et cela produit directement la requête.

DELETE FROM my_models where id=1

28voto

siful islam Points 361

Si vous voulez supprimer une instance, écrivez le code suivant

entry= Account.objects.get(id= 5)
entry.delete()

si vous voulez supprimer toutes les instances, écrivez le code suivant

entries= Account.objects.all()
entries.delete()

18voto

lilhamad Points 169

Si vous voulez supprimer un élément

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

Si vous voulez supprimer tous les éléments de Wishlist, par exemple

Wishlist.objects.all().delete()

10voto

KhairulBashar Points 41

Extension de la réponse la plus votée par wolph

Notez que vous devez passer la requête comme paramètre à votre fonction de suppression dans vos vues. Un exemple serait le suivant :

from django.shortcuts import redirect

def delete(request, id):
YourModelName.objects.filter(id=id).delete()

return redirect('url_name')

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