492 Stimmen

Wie löscht man einen Datensatz in Django-Modellen?

Ich möchte einen bestimmten Datensatz löschen. Wie zum Beispiel

delete from table_name where id = 1;

Wie kann ich dies in einem Django-Modell tun?

13 Stimmen

Ich stimme @Freedom_Ben zu, aber für künftige Leser, die das f*-Handbuch sowieso mögen, ist das genau das Richtige: docs.djangoproject.com/de/dev/topics/db/queries/

841voto

Wolph Punkte 73880

Dazu gibt es mehrere Möglichkeiten:

Um sie direkt zu löschen:

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

Um sie aus einer Instanz zu löschen:

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

88voto

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

wird eine Ausnahme ausgelöst, wenn das Objekt mit dem angegebenen Primärschlüssel nicht vorhanden ist, da zunächst versucht wird, das angegebene Objekt abzurufen.

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

dies wird keine Ausnahme auslösen, wenn das Objekt mit dem angegebenen Primärschlüssel nicht existiert und die Abfrage direkt erstellt wird

DELETE FROM my_models where id=1

32voto

siful islam Punkte 371

Wenn Sie eine Instanz löschen wollen, schreiben Sie den Code

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

wenn Sie alle Instanzen löschen wollen, schreiben Sie den Code

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

19voto

Ahmed Adewale Punkte 2566

Wenn Sie ein Element löschen möchten

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

Wenn Sie zum Beispiel alle Artikel in der Wunschliste löschen möchten

Wishlist.objects.all().delete()

10voto

KhairulBashar Punkte 121

Erweiterung der meistgewählten Antwort um wolph

Beachten Sie, dass Sie die Anfrage als Parameter an Ihre Löschfunktion in Ihren Ansichten übergeben sollten. Ein Beispiel wäre wie folgt:

from django.shortcuts import redirect

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

return redirect('url_name')

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X