[pyar] [Django] Existe equivalente a save_model pero para delete?

Nicolas Echaniz nico en rakar.com
Lun Ago 23 23:52:16 ART 2010


On Monday 23 August 2010 12:01:22 Dario Ocles wrote:
> El día 23 de agosto de 2010 11:48, Nicolas Echaniz <nico en rakar.com> 
escribió:
> > On Monday 23 August 2010 09:58:49 Daniel Moisset wrote:
> >> 2010/8/23 Dario Ocles <dario.ocles en gmail.com>:
> >> > Buenas gente.
> >> > 
> >> > Estoy buscando un equivalente a save_model pero para el delete de un
> >> > registro en el admin. El problema en cuestión es que estoy usando
> >> > ContentTypes para relacionar varios modelos distintos pero al borrar
> >> > un registro de algunos de esos modelos no me borra el registro en el
> >> > modelo que centra todo gracias a ContentTypes.
> >> 
> >> Hay un delete() en el modelo, igual que save()
> >> 
> >> deberías ver si no corresponde usar Model.save() en vez de
> >> ModelAdmin.save_model() ; el primero es mas apropiado si la logica que
> >> estas poniendo se tiene que usar en todas las operaciones del modelo,
> >> y el segundo si la logica es solo del acceso al modelo a travez de la
> >> interfaz de admin.
> >> 
> >> No hay un delete_model, por que no tenes ni form ni mucha info extra
> >> para customizar (capaz en algunos casos estaría bueno tener el
> >> request). Pero por el problema que contás, la logica que queres poner
> >> va en el delete() del modelo.
> >> 
> >> Lo único que hay que considerar con cuidado, es que este metodo no se
> >> llama cuando borras desde un queryset. por ej:
> >> Zapato.objects.filter(tamano=38).delete() , no llama nunca a
> >> Zapato.delete()
> > 
> > Un caso importante a tener en cuenta también es que la acción de borrar
> > desde el changelist en el admin tampoco llama a delete().
> > Dependiendo de la situación, puede que te convenga usar signals.
> 
> Esto me preocupa. En la practica, toda mi aplicación solo se maneja
> desde el admin. Hay muy poco (por no decir que no hay) código que
> borre o cree cosas. Pero esto no quiere decir que en el futuro no
> cambie.
> 
> Yo lo único que quiero es que cada vez que se crea o se borra una
> sección, se agregue y se borre de la lista de secciones.
> 
> Recién estuve leyendo sobre signals y la que me interesa es la
> pre_delete. Esta señal se envia siempre no importa el caso? Estuve
> leyendo pero no encuentro una referencia que lo aclare (o algún tipo
> de warning).

Hasta donde recuerdo, sí, se envía siempre.



More information about the pyar mailing list