Django user get_all_permissions () está vacío mientras user_permissions está configurado
-
21-09-2019 - |
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
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.