web-dev-qa-db-de.com

Wie lösche ich einen Datensatz in Django Modellen?

Ich möchte einen bestimmten Datensatz löschen. Sowie

delete from table_name where id = 1;

Wie kann ich das in einem Django model?

214
user426795

Es gibt verschiedene Möglichkeiten:

So löschen Sie es direkt:

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

So löschen Sie es aus einer Instanz:

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

dies löst eine Ausnahme aus, 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 löst keine Ausnahme aus, wenn das Objekt mit dem angegebenen Primärschlüssel nicht vorhanden ist und die Abfrage direkt erstellt wird

DELETE FROM my_models where id=1
21
Milad Kh

Wolph lieferte eine gute Antwort fokussierte Codes. Lassen Sie mich hier nur offiziell doc als Referenz einfügen.

4
VicX

Wenn Sie einen Artikel löschen möchten

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

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

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