Sto cercando di ottenere permessi basati sui ruoli che funzionano per django-nonrel per GAE.Come abilitare le autorizzazioni di gruppo in Django-nonrel per Google App Engine
Fuori dagli schemi, non sembra funzionare, probabilmente a causa della relazione implicita molti a molti tra utenti e gruppi, quindi ho trovato e installato http://www.fhahn.com/writing/Django-s-Permission-System-with-Django-Nonrel. In base alla documentazione, ho aggiunto permission_backend_nonrel a INSTALLED_APPS (dopo djangotoolbox) e ho definito AUTHENTICATION_BACKENDS nella classe appropriata in settings.py.
Questo mi porta oltre il problema precedente ("DatabaseError: questa query non è supportata dal database."), Ma sono ancora bloccato perché quando eseguo un esempio molto semplice, ottengo un set vuoto di autorizzazioni quando Credo che dovrei ottenere qualcosa in cambio. Il seguente è un semplice esempio che potrei fare. Viene lanciato nel framework django da python shell.py shell - è un semplice negozio di pony. Sto cercando di aggiungere un utente a un gruppo, dare che i permessi del gruppo, e poi vedere tali autorizzazioni riflettevano come parte del set di autorizzazioni l'utente ha:
>>> 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
Quindi, la domanda è: perché doesn' t il lavoro di cui sopra, e cosa ho bisogno di cambiare per farlo funzionare?
Grazie in anticipo per il vostro aiuto!