2016-03-29 10 views
0

Django kommt mit einem einfachen Berechtigungssystem. Es bietet eine Möglichkeit, bestimmten Benutzern und Benutzergruppen Berechtigungen zuzuweisen. So: 'app_lable.model_name'. Es mag für den Django-Admin bequem sein, aber ich denke, es wird schwierig sein, wenn ich es benutze, um zu kontrollieren, was Leute damit tun können.Verwirrung mit dem Django-Berechtigungssystem

Zum Beispiel, wenn ich kontrollieren möchte, ob ein bestimmter Benutzer einen Kommentar oder einen Teil Inhalt meiner Website sehen kann. Ich muss eine Berechtigungsgruppe für ihn konfigurieren, aber warum nicht einfach eine Benutzereigenschaft wie can_post oder can_view_certain_portion hinzufügen? Es scheint intuitiver. Wer kann mir helfen, diese Dinge zu verstehen? Danke im Voraus.

Antwort

2

Der Grund, Berechtigungen in einem separaten Modell zu behalten, ist die Verwendung von Gruppen.

Wenn Sie also die Berechtigungen für viele Benutzer gleichzeitig ändern müssen, können Sie einfach die Berechtigungen der Gruppe aktualisieren, der sie zugewiesen sind.

Da Benutzer zu mehreren Gruppen gehören können, haben Sie mehr Flexibilität beim Anpassen der Berechtigungen pro Benutzer.

Denken Sie daran, dass vanilla django-Berechtigungen modelbasiert sind. Wenn Sie also die Änderung nur bestimmter Felder auf verschiedene Benutzer beschränken möchten, benötigen Sie etwas robusteres wie django-guardian.