Elimina un record di un modello in Django
Django è un framework versatile che ci consente di creare applicazioni full-stack molto rapidamente. Django gestisce la maggior parte delle attività complesse e fondamentali associate a tutte le applicazioni web in modo efficiente in modo che gli sviluppatori non debbano scriverle da zero.
Fortunatamente, Django gestisce i database come un incantesimo e rende davvero semplice l’interazione con essi. Sebbene le query SQL non elaborate possano essere scritte in Django, ci consente di interagire con il database e le tabelle utilizzando Python: possiamo eseguire in modo efficiente operazioni CRUD su database utilizzando Python molto rapidamente.
In questo articolo, introdurremo la funzione dell’operazione CRUD delete e dimostreremo come è possibile eliminare un record di un modello in Django.
Eliminare un record di un modello utilizzando il metodo delete()
in Django
Tutti gli oggetti o le istanze del modello in Django hanno un metodo delete()
, che può essere utilizzato per eliminare quel record. Ora, questo metodo delete()
può essere utilizzato anche per eliminare un singolo record e un gruppo di essi.
Per eliminare un singolo record, utilizzeremo il seguente codice:
record = ModelName.objects.get(id=25)
record.delete()
Il metodo get()
recupera il record con id
come 25 e quindi lo elimina. Ma se il record non viene trovato, solleva un’eccezione. Per evitare ciò, possiamo usare un blocco try...except
come segue:
try:
record = ModelName.objects.get(id=25)
record.delete()
print("Record deleted successfully!")
except:
print("Record doesn't exists")
Se dobbiamo eliminare tutti i record, possiamo chiamare questa funzione delete()
su un QuerySet
contenente tutti i record. Il codice seguente esegue la stessa operazione:
records = ModelName.objects.all()
records.delete()
Come accennato in precedenza, possiamo chiamare questa funzione delete()
su un QuerySet
; ciò significa che possiamo anche chiamare questa funzione su un QuerySet
di alcuni record filtrati. Fare riferimento al codice seguente per lo stesso output:
records = ModelName.objects.filter(firstName="Vaibhav")
records.delete()