HOWTO · Django

Eliminar un registro de un modelo en Django

Aprenda a 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()