У меня есть несколько ограниченных областей на сайте, для которого я хотел бы указать login_required
декоратор. Однако я хотел бы сделать это однажды на включение в основной urls.py, не на отдельный URL во включенном urls.py
Таким образом вместо:
/private/urls.py:
(r'^profile/$', login_required(profile)),
Я сделал бы что-то вдоль строк:
/urls.py
urlpatterns = patterns('',
...
(r'^private/', login_required(include('private'))),
)
За исключением того, что это не работает, к сожалению.
login_required
предназначен для упаковки вызываемых представлений , не include () и глядя на исходный код:
http://code.djangoproject.com/browser/django/tags/releases/1.1.1/django/conf/urls/defaults.py#L9
- Я не думаю, что есть простой способ использовать default (или даже custom) login_required
с include () для достижения того, чего вы хотите достичь.
Написав это, я думаю, что разумным подходом было бы использование некоторого промежуточного программного обеспечения, необходимого для входа в систему, например этого: http://www.djangosnippets.org/snippets/1179/ и забыть о украшение URL-адресов в urls.py.