[pyar] [django] Quitar accion del admin

Martin Alderete malderete en gmail.com
Jue Sep 25 20:14:09 ART 2014


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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140925/03108e1f/attachment.html>


More information about the pyar mailing list