Eliminar un registro de un modelo en Django
Django es un marco versátil que nos permite crear aplicaciones full-stack muy rápidamente. Django maneja la mayoría de las tareas complejas y centrales asociadas con todas las aplicaciones web de manera eficiente para que los desarrolladores no tengan que escribirlas desde cero.
Afortunadamente, Django maneja las bases de datos como un encanto y hace que sea realmente sencillo interactuar con ellas. Aunque las consultas SQL sin procesar se pueden escribir en Django, nos permite interactuar con la base de datos y las tablas usando Python; podemos realizar de manera eficiente operaciones CRUD sobre bases de datos usando Python muy rápidamente.
En este artículo, presentaremos la función de eliminación de la operación CRUD y demostraremos cómo puede eliminar un registro de un modelo en Django.
Eliminar un registro de un modelo usando el método delete()
en Django
Todos los objetos o instancias del modelo en Django tienen un método delete()
, que puede usarse para borrar ese registro. Ahora, este método delete()
también se puede utilizar para eliminar un solo registro y muchos de ellos.
Para eliminar un solo registro, usaremos el siguiente código:
record = ModelName.objects.get(id=25)
record.delete()
El método get()
recupera el registro con el id
como 25 y luego lo elimina. Pero si no se encuentra el registro, genera una excepción. Para evitar eso, podemos usar un bloque try...except
de la siguiente manera:
try:
record = ModelName.objects.get(id=25)
record.delete()
print("Record deleted successfully!")
except:
print("Record doesn't exists")
Si tenemos que eliminar todos los registros, podemos llamar a esta función delete()
en un QuerySet
que contiene todos los registros. El siguiente código realiza la misma operación:
records = ModelName.objects.all()
records.delete()
Como se mencionó anteriormente, podemos llamar a esta función delete()
en un QuerySet
; esto significa que también podemos llamar a esta función en un QuerySet
de algunos registros filtrados. Consulte el siguiente código para obtener el mismo resultado:
records = ModelName.objects.filter(firstName="Vaibhav")
records.delete()