Hay varias formas de agregar este permiso de "ver" en la web, pero la forma más sencilla que yo e visto es hacerlo en "post_syncdb". Cuando uses el comando syncdb, todos los modelos de tu sistema se chequeara si tienen el permiso view y si no se los creara.
Solo tienes que poner el siguiente script en el __init.py en el directorio de management/ de cualquiera de tus aplicaciones. Necesita estar dentro de un directorio de management o si no, no sera descubierto por el comando syncdb.
from django.db.models.signals import post_syncdb from django.contrib.contenttypes.models import ContentType from django.contrib.auth.models import Permission def add_view_permissions(sender, **kwargs): """ This syncdb hooks takes care of adding a view permission too all our content types. """ # for each of our content types for content_type in ContentType.objects.all(): # build our permission slug codename = "view_%s" % content_type.model # if it doesn't exist.. if not Permission.objects.filter(content_type=content_type, codename=codename): # add it Permission.objects.create(content_type=content_type, codename=codename, name="Can view %s" % content_type.name) print "Added view permission for %s" % content_type.name # check for all our view permissions after a syncdb post_syncdb.connect(add_view_permissions)
No hay comentarios:
Publicar un comentario