В моем приложении Django у меня есть определенные разрешения, необходимые пользователям для доступа к определенным представлениям (с использованием django.contrib.auth
). Это отлично работает, используя декоратор @permission_required
на моих функциях просмотра.Django: Применение разрешений в диспетчере URL?
Однако, некоторые из моих URL-адресов постановляем взглядов, которые я не писал, например, встроенный в django.contrib.auth.views.password_change
, как в следующем urls.py
:
urlpatterns = patterns(
(r'^$', "users.views.index"),
(r'^password_change/$', 'django.contrib.auth.views.password_change'))
В этом случае, я некуда применить свои @permission_required
декоратор - или я? Есть ли способ применить ограничение разрешений на уровне диспетчера URL-адресов?
Как бы вы использовали 'permission_required' таким же образом? В частности, как бы вы передали ему аргумент имени разрешения? –
@Manoj: ознакомьтесь с этим разделом документации: http://docs.djangoproject.com/en/dev/topics/auth/#limiting-access-to-generic- рассматривает идею написать тонкую обертку (с allow_required decorator) вокруг общего представления и указать ваш urlconf на эту оболочку ... – Hoff
Вот что я сделал в своем ответе. Просто хотел знать, есть ли какой-нибудь другой способ. Благодарю. –