Domanda

ho aggiunto alcune autorizzazioni per un utente attraverso l'interfaccia di amministrazione.

Da qualche ragione tutte le funzioni perm non riescono, per esempio

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

Ma accedendo direttamente al tavolo, funziona:

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

Che cosa può causare i "get_all_permissions" (e tutte le funzioni perm come has_perm ()) per fallire?

Grazie

È stato utile?

Soluzione

ha avuto lo stesso problema. Sto indovinando che a un certo punto si è utilizzato un AUTHENTICATION_BACKEND auto-artigianale? La maggior parte degli esempi sulla rete di questo (compresa la DJANGO 1.0 documentazione!) Non menzionano che i backend sono responsabili per le autorizzazioni di gestione come bene.

Tuttavia, non disperatevi: In qualunque backend il file il codice risiede, includono questa importazione:

from django.contrib.auth.backends import ModelBackend

Quindi assicurarsi che il backend hai scritto si estende ModelBackend, per esempio:.

class EmailBackend(ModelBackend):

dovrebbe andare bene.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top