Eliminando objetos responsablemente en Django
May 12, 2016
Eliminando objetos responsablemente en Django
Una parte esencial de nuestro CRUD es la D de Delete. Django por defecto soluciona problemas eliminando dependencias en cascada, pero tal cual como se muestra en el administrador de Django, a veces es conveniente mostrarle a nuestro usuario el impacto que puede tener la eliminación de un registro.
Escarbando en el código fuente del administrador de django, y en stackoverflow he encontrado un fragmento de código que puede ser muy útil para esta labor
objects_to_delete = my_model.objects.filter(my_attr=foo)
from django.contrib.admin.utils import NestedObjects
collector = NestedObjects(using='default')
collector.collect(objects_to_delete)
# Los objetos se almacenaran en el colector y se pueden acceder con el método
collector.nested()
La estructura puede parecer un poco densa a la vista, pero se renderizará en html muy bien, yay por el motor de templates.