def add_view_permissions(sender, **kwargs):
    # 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
This syncdb hooks takes care of adding a view permission too all our
dataset/ETHPy150Open sshwsfc/xadmin/xadmin/models.py/add_view_permissions