view.pyWie schränkt man eine Ansicht auf Superuser ein?
@login_required
@permission_required('is_superuser')
def score_reset(request):
pass
url.py
url(r'^score-reset/$', score_reset, name='score-reset'),
Ich habe den folgenden Code und zu meiner Überraschung traf ich immer noch die Funktion, obwohl sie mit einem nicht Superuser angemeldet. Ich habe erwartet, dass eine Genehmigung verweigert wird.
Was fehlt mir?
btw, ich bin diese Kennzeichnung nicht als Duplikat da weder Antwort, die ich verbunden habe zu erwähnen, dass 'user_passes_test' ist eine bestehende django Dekorateur sowie die Tatsache, dass' is_superuser 'ist keine Erlaubnis –
Die Frage fragt nach der Beschränkung auf Superuser nur. Der Beispielcode sollte @user_passes_test sein (lambda u: u.is_superuser) – mhost
Mit 'user_passes_test' [das obige Snippet] funktioniert das. Aber du solltest vielleicht bedenken, dass dies zur Login-Seite für alle Nicht-Super-User umgeleitet wird, Selbst wenn sie sich bereits eingeloggt haben. Vielleicht möchten Sie Ihren eigenen Dekorateur schreiben, um die Arbeit zu erledigen. – allsyed