Agregar permiso a Django Admin

El mes pasado publiqué una pregunta en stackoverflow y en el grupo de usuarios de Django en G + y también en el sitio web de django. Pero no encontré ninguna respuesta que pueda resolver mi problema. Lo que quiero hacer es agregar un nuevo permiso denominado comoview en el panel de administración de django, por lo que el usuario solo puede ver los datos. También seguí diferentes parches del sitio web de django e intentédjango-databrowse Pero nada funciona como se esperaba. Entonces finalmente decido editarviews of auth/admin. Ahora lo que voy a hacer es agregar permiso de vista como:

1. Se agregó 'vista' a la lista de permisos predeterminada

#./contrib/auth/management/init.py
def _get_all_permissions(opts):

    "Returns (codename, name) for all permissions in the given opts."
    perms = []
    for action in ('add', 'change', 'delete', 'view'):

        perms.append((_get_permission_codename(action, opts), u'Can %s %s' % (action, opts.verbose_name_raw)))

    return perms + list(opts.permissions)

2. Probar el permiso 'ver' se agrega a todos los modelos

run manage.py syncdb

Después de esto, solo puedo asignar permisos de visualización al usuario. Ahora este permiso de vista también debe funcionar. Entonces estoy escribiendo este código:in view.py of django-admin

for per in request.user.user_permissions_all():
    print per

Este código imprime permisos asignados al usuario de inicio de sesión comoauth | permission | can view department etc.

Ahora puedo obtener el tipo de permiso y el nombre del modelo dividiendo esta oración. Obtendré todo el nombre del modelo de la aplicación y coincidiré con los datos que deben ser visibles. De nuevo, esto no es lo que realmente necesito, pero puede funcionar.

Entonces mi pregunta es:

* ¿Es esto lo que debo hacer o hay alguna otra manera también? Solo quiero una solución que debe funcionar como se esperaba. Necesita su asistencia *

Respuestas a la pregunta(1)

Su respuesta a la pregunta