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

Dario Ocles dario.ocles en gmail.com
Lun Ago 23 12:01:22 ART 2010


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).

Saludos.



More information about the pyar mailing list