Frage

Ich habe einem Benutzer über die Admin -Schnittstelle einige Berechtigungen hinzugefügt.

Aus irgendeinem Grund scheitern alle Perm -Funktionen, z. B.

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

Zugriff jedoch direkt auf die Tabelle, funktioniert:

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

Was kann die "get_all_permissions" (und alle Perm -Funktionen wie Has_Perm ()) verursachen?

Vielen Dank

War es hilfreich?

Lösung

hatte das gleiche Problem. Ich vermute, dass Sie irgendwann eine selbst hergestellte Authentifizierung verwendet haben? Die meisten Beispiele im Internet davon (einschließlich der Django 1.0 -Dokumentation!) Erwähnen Sie nicht, dass die Backends auch für die Behandlung von Berechtigungen verantwortlich sind.

No Biggie: In welcher Backend -Datei, in der Ihr Code liegt, geben Sie jedoch den folgenden Import an:

from django.contrib.auth.backends import ModelBackend

Stellen Sie dann sicher, dass das Backend Sie geschrieben haben erweitert Modellbackend, z. B.:

class EmailBackend(ModelBackend):

Sollte gut sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top