Quiero eliminar un registro en particular. Tal como¿Cómo eliminar un registro en los modelos de Django?
delete from table_name where id = 1;
¿Cómo puedo hacer esto en un django model
?
Quiero eliminar un registro en particular. Tal como¿Cómo eliminar un registro en los modelos de Django?
delete from table_name where id = 1;
¿Cómo puedo hacer esto en un django model
?
Hay un par de maneras:
Para eliminar directamente:
SomeModel.objects.filter(id=id).delete()
para eliminarlo de una instancia:
instance = SomeModel.objects.get(id=id)
instance.delete()
Tenga en cuenta que el primero no llamará al método .delete() del objeto , por lo tanto, si tiene un código de "limpieza" en ese método, no se lo llamará. Generalmente no es un problema, pero vale la pena tenerlo en cuenta. –
@Matthew Schinckel: eso es cierto. Si desea tener un método de eliminación personalizado de lo que debería estar utilizando la señal 'pre_delete' o' post_delete' en su lugar. – Wolph
No sé cuál es el caso después de DJango 1.4, pero esto es realmente recuperar todos los PK y luego eliminarlos por esos PK. Por ejemplo, si elimina por un campo arbitrario, esto puede ser mucho más lento que la contraparte SQL ... :( –
Gracias por la pregunta. A veces RTFM toma mucho más tiempo que una búsqueda de Google y SO, como lo demuestra el número de votos de respuesta y el número de visitas –
de acuerdo con @Freedom_Ben, pero para los lectores futuros que les gusta el manual de f * de todos modos, esto es lo que tú ' Está buscando: https://docs.djangoproject.com/en/dev/topics/db/queries/#topics-db-queries-delete – Dinei