Voglio cancellare un particolare record. Ad esempio
delete from table_name where id = 1;
Come posso farlo in un django model
?
Voglio cancellare un particolare record. Ad esempio
delete from table_name where id = 1;
Come posso farlo in un django model
?
Risposte:
Ci sono un paio di modi:
Per eliminarlo direttamente:
SomeModel.objects.filter(id=id).delete()
Per eliminarlo da un'istanza:
instance = SomeModel.objects.get(id=id)
instance.delete()
pre_delete
o post_delete
.
delete()
per verificare ciò che si stava eliminando. Restituisce una tupla con il conteggio degli oggetti eliminati e un dizionario con dettagli sui tipi eliminati, ad es (1, {'yourapp.SomeModel': 1})
.
MyModel.objects.get(pk=1).delete()
questo genererà un'eccezione se l'oggetto con la chiave primaria specificata non esiste perché inizialmente tenta di recuperare l'oggetto specificato.
MyModel.objects.filter(pk=1).delete()
ciò non genererà eccezioni se l'oggetto con la chiave primaria specificata non esiste e produce direttamente la query
DELETE FROM my_models where id=1
MyModel.object.filter(pk=1).delete()
. Dovrebbero essere "oggetti".
se si desidera eliminare un'istanza, scrivere il codice
delet= Account.objects.get(id= 5)
delet.delete()
se si desidera eliminare tutte le istanze, scrivere il codice
delet= Account.objects.all()
delete.delete()
Se si desidera eliminare un elemento
wishlist = Wishlist.objects.get(id = 20)
wishlist.delete()
Ad esempio, se si desidera eliminare tutti gli elementi nella lista dei desideri
Wishlist.objects.all().delete()