Chcę usunąć konkretny rekord. Jak na przykład
delete from table_name where id = 1;
Jak mogę to zrobić django model
?
Chcę usunąć konkretny rekord. Jak na przykład
delete from table_name where id = 1;
Jak mogę to zrobić django model
?
Odpowiedzi:
Istnieje kilka sposobów:
Aby usunąć bezpośrednio:
SomeModel.objects.filter(id=id).delete()
Aby usunąć go z instancji:
instance = SomeModel.objects.get(id=id)
instance.delete()
pre_delete
lub post_delete
.
delete()
aby sprawdzić, co usuwasz. Zwraca krotkę z liczbą usuniętych obiektów i słownik ze szczegółowymi informacjami o usuniętych typach, np (1, {'yourapp.SomeModel': 1})
.
MyModel.objects.get(pk=1).delete()
spowoduje to wyjątek, jeśli obiekt o określonym kluczu podstawowym nie istnieje, ponieważ najpierw próbuje pobrać określony obiekt.
MyModel.objects.filter(pk=1).delete()
nie spowoduje to wyjątku, jeśli obiekt o określonym kluczu podstawowym nie istnieje i bezpośrednio wygeneruje zapytanie
DELETE FROM my_models where id=1
MyModel.object.filter(pk=1).delete()
. Powinny to być „obiekty”.
Jeśli chcesz usunąć jeden element
wishlist = Wishlist.objects.get(id = 20)
wishlist.delete()
Jeśli chcesz na przykład usunąć wszystkie elementy z listy życzeń
Wishlist.objects.all().delete()
jeśli chcesz usunąć jedno wystąpienie, napisz kod
delet= Account.objects.get(id= 5)
delet.delete()
jeśli chcesz usunąć wszystkie wystąpienia, napisz kod
delet= Account.objects.all()
delete.delete()
Wolph dostarczył kody skupione na dobrej odpowiedzi. Pozwól, że wkleję tutaj oficjalny dokument w celach informacyjnych.