Pergunta

Eu adicionei algumas permissões para um usuário através da interface de administração.

De alguma razão, todos os perm funções falhar, e.g

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

Mas acessando diretamente a tabela, funciona:

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

O que pode causar o "get_all_permissions" (e todos os perm funções como has_perm()) falhar ?

Obrigado

Foi útil?

Solução

tive o mesmo problema.Eu estou supondo que em algum momento você tiver usado uma auto-criado AUTHENTICATION_BACKEND?Mais exemplos na net deste (INCLUINDO O DJANGO 1.0 DOCUMENTAÇÃO!) não menciona que a infra-estrutura que são responsáveis pela manipulação de permissões bem.

No entanto, nada demais:Em qualquer arquivo de back-end o código reside, incluir esta importação:

from django.contrib.auth.backends import ModelBackend

Em seguida, certifique-se de que o Back-end que você escreveu estende-se ModelBackend, por exemplo:

class EmailBackend(ModelBackend):

Deve ser fino.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top