Estoy tratando de obtener permisos basados en roles que funcionen para django-nonrel para GAE.Cómo hacer que los permisos de grupo funcionen en Django-nonrel para Google App Engine
Fuera de la caja, no parecía funcionar, probablemente debido a la relación implícita muchos-a-muchos entre Usuarios y Grupos, así que encontré e instalé http://www.fhahn.com/writing/Django-s-Permission-System-with-Django-Nonrel. De acuerdo con la documentación, agregué permission_backend_nonrel a INSTALLED_APPS (después de djangotoolbox) y definí AUTHENTICATION_BACKENDS a la clase apropiada en settings.py.
Esto me permite superar el problema anterior ("DatabaseError: esta consulta no es compatible con la base de datos."), Pero todavía estoy atascado porque cuando ejecuto una muestra muy simple, obtengo un conjunto vacío de permisos cuando Creo que debería recuperar algo. El siguiente es un ejemplo tan simple como podría hacer. Se lanzó en el framework django mediante el shell python manage.py, es una simple tienda de pony. Estoy tratando de agregar un usuario a un grupo, que dar permisos de grupo, y luego ver esos permisos reflejados como parte del conjunto de permisos que el usuario tiene:
>>> from django.contrib.auth.models import Group, Permission, User
>>> from django.contrib.contenttypes.models import ContentType
>>> from pony_shop.models import Pony
#Create the group:
>>> farmers = Group(name="Farmers")
>>> farmers.save()
>>> pony_ct = ContentType.objects.get(app_label='pony_shop', model='pony')
#Create the Permission
>>> can_twirl = Permission(name='Can Twirl', codename='can_twirl', content_type=pony_ct)
>>> can_twirl.save()
#Give the Permission to the Group
>>> farmers.permissions.add(can_twirl)
>>> farmers.save()
#Create the User
>>> francis = User(username='francis')
>>> francis.save()
#Put the user in the group
>>> francis.groups.add(farmers)
>>> francis.save()
#Get a pony object
>>> firefly = Pony(price=12, height=3, name='Firefly', color='fuscia')
>>> firefly.save()
>>> francis.get_all_permissions()
set([]) #<-- WHY?!?
#Just in case I needed to check the permissions against a pony object:
>>> francis.get_all_permissions(obj=firefly)
set([]) #<-- Still no joy
Entonces, la pregunta es: ¿Por qué doesn' el trabajo anterior, y ¿qué necesito cambiar para que funcione?
Gracias de antemano por su ayuda!