Pregunta

Agregué algunos permisos a un usuario a través de la interfaz de administración.

Por alguna razón, todas las funciones permanentes fallan, por ejemplo,

>>> user.get_all_permissions()
set([])

Pero acceder a la tabla directamente, funciona:

>>> user.user_permissions.all()
(list of permissions as expected)

¿Qué puede hacer que el "get_all_permissions" (y todas las funciones permanentes como has_perm ()) fallen?

Gracias

¿Fue útil?

Solución

tenía el mismo problema. ¿Supongo que en algún momento ha usado una autenticación autorafiada_Backend? La mayoría de los ejemplos en la red de esto (¡incluida la documentación Django 1.0!) No mencionan que los backends también son responsables del manejo de permisos.

Sin embargo, no hay Biggie: en cualquier archivo de back -end que reside su código, incluya esta importación:

from django.contrib.auth.backends import ModelBackend

Entonces asegúrese de que el backend escribió extender ModelBackend, por ejemplo:

class EmailBackend(ModelBackend):

Debería estar bien.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top