Skip to content

Instantly share code, notes, and snippets.

@nicpottier
Created March 22, 2011 07:43
Show Gist options
  • Star 13 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save nicpottier/880901 to your computer and use it in GitHub Desktop.
Save nicpottier/880901 to your computer and use it in GitHub Desktop.
Adds a view permission to all your models in Django
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)
@xangmuve
Copy link

se ve muy bueno voy a probarlo...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment