Wie kann man machen, Django permission_required decorator nicht umleiten bereits angemeldeten Benutzer auf die login-Seite, aber eine Meldung
Kann Django permission_required decorator nicht umleiten bereits angemeldeten Benutzer auf die login-Seite, aber eine Meldung wie Unzureichende Berechtigungen?
Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen quick-and-dirty-Lösung wäre, ein eigenes zu schreiben Dekorateur, dies zu tun. So etwas wie dieses:
Können Sie dann schmücken Sie Ihre Ansicht so:
User
Modell hatte (hat?) eine Funktion namensmessage_set.create()
erstellt, die eine message-Instanz. Nicht sicher, ob es ihn noch gibt.Seit django 1.4
permission_required
hat eineraise_exception
parameter, die Sie auf True setzen können, um eine nicht autorisierte PermissionDenied Ausnahme ausgelöstZB. geben Sie ein Beispiel für ein Class Based View:
Ref:permission_required decorator doc
Ich nehme an, dass diese Frage erfordert zwei Stücke
@Manoj Govindan Antwort noch @Stefano ' s Antwort wird nicht funktionieren. @Lidor Antwort wird funktionieren, aber er hat komplett re-implementiert die
permission_required
Funktion.Hier ist ein einfacher Weg:
Mit dabei, wenn die Benutzer nicht angemeldet sind, werden Sie umgeleitet werden. Wenn Sie sind, aber Sie haben keine Berechtigungen, können Sie unten einen Fehler.
Schreiben Sie Ihre eigenen decorator zu ersetzen django ' s
permission_required
decorator:Und es verwenden die gleiche Weise:
Angemeldete Benutzer keine Berechtigung bekommen einen 403 forbidden-Fehler. Diejenigen, die nicht angemeldet sind, werden auf die Anmeldeseite umgeleitet.