[pyar] [django] Quitar accion del admin

Daniel dmlistapython en gmail.com
Jue Sep 25 20:55:41 ART 2014


Bien, si doy vuelta la pregunta completo lo que buscaba y puedo safar

suponiendo que hago admin.site.disable_action('delete_selected')
como hago un "enabled" del delete en determinado modelo?



El 25 de septiembre de 2014, 20:14, Martin Alderete <malderete en gmail.com>
escribió:

> Hola! Como estas?
>
> Si, eso saca el delete de todo el admin.
>
> Hay varias formas de lograr lo que queres y depende de lo que estas
> haciendo etc,
> una opcion es hacer algo como:
>
> class AlgunModelAdmin(admin.ModelAdmin):
>     actions = ['action1', 'action2', .......'actionN']
>
> El tema es que aca tenes que poner las acciones que SI QUERES, si tenes
> muchas es medio feo este approach.
>
>
> Otra forma un poco mas versatil es.
>
> class AlgunModelAdmin(admin.ModelAdmin):
>     """
>     Mixin para desabilitar algunas acciones
>     """"
>     def get_actions(self, request):
>         actions = super(AlgunModelAdmin, self).get_actions(request)
>         # eliminamos el delete
>         if 'delete_selected'' in actions:
>             del actions['delete_selected']
>         return actions
>
>
> y generalizando esta idea podes tener algo como....
>
>
> class ModelAdminNoDeleteMixin(object):
>     def get_disable_actions(self, request):
>         return []
>
>     def get_actions(self, request):
>         actions = super(ModelAdminNoDeleteMixin, self).get_actions(request)
>          for act_name in self.get_disable_actions(request):
>            del  actions[act_name]
>         return actions
>
> class AlgunModelAdmin(ModelAdminNoDeleteMixin, admin.ModelAdmin):
>     def get_disable_actions(self, request):
>         return ('delete_selected', )
>
> Bueno, espero que te sirva y se entienda.... no probe el codigo asi que
> puede haber typos :), cualquier duda consulta :).
>
> Aca te dejo la doc de Django por las dudas,
> https://docs.djangoproject.com/en/dev/ref/contrib/admin/actions/#disabling-actions
>
> Saludos!
>
>
>
>
> 2014-09-25 17:11 GMT-03:00 Daniel <dmlistapython en gmail.com>:
>
>> si hago esto
>>     admin.site.disable_action('delete_selected')
>>
>> deshabilito el borrado para todo el sitio
>>
>> ¿cómo puedo hacer esto para determinados modelos nomás?
>>
>>
>>
>>
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>
>
>
> --
> Martin Alderete
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>



-- 
Daniel Malisani
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140925/e0fd4799/attachment.html>


More information about the pyar mailing list