In meiner Django-Anwendung habe ich bestimmte Berechtigungen, die Benutzer benötigen, um auf bestimmte Ansichten zuzugreifen (mit django.contrib.auth
). Dies funktioniert gut, mit der @permission_required
Dekorateur auf meine Ansicht Funktionen.Django: Berechtigungen im URL-Dispatcher anwenden?
jedoch lösen einige meiner URLs zu Ansichten, die ich nicht, wie die eingebaute in django.contrib.auth.views.password_change
, wie in der folgenden urls.py
schrieb:
urlpatterns = patterns(
(r'^$', "users.views.index"),
(r'^password_change/$', 'django.contrib.auth.views.password_change'))
In diesem Beispiel habe ich nirgends meine anwenden @permission_required
Dekorateur - oder soll ich? Gibt es eine Möglichkeit, eine Zugriffsbeschränkung auf der URL-Dispatcher-Ebene anzuwenden?
Wie würden Sie 'permission_required' auf die gleiche Weise verwenden? Wie würden Sie das Argument des Berechtigungsnamens übergeben? –
@Manoj: Sehen Sie sich diesen Abschnitt der Dokumentation an: http://docs.djangoproject.com/en/dev/topics/auth/#limiting-access-to-generic-views Die Idee ist, einen dünnen Wrapper (mit permission_required decorator) um die generische Ansicht herum, und zeigen Sie Ihre urlconf auf diese Wrapper ... – Hoff
Das ist, was ich in meiner Antwort getan habe. Ich wollte nur wissen, ob es anders geht. Vielen Dank. –