Django login_required декоратор с поведением, основанным на представлении - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть структура URL в Django, например:

urlpatterns = [
    # ...
    path('me/', profile_view, name='my_profile'),
    path('<uuid:account_id>/', profile_view, name='user_profile')
]

, и мой profile_view выглядит так:

@login_required
def profile_view(request, account_id=None):
    # ...

Я хочу использовать декоратор, необходимый для входа, только для входа в системуесли account_id = None?Таким образом, если кто-то переходит на /accounts/me URL, система должна требовать аутентифицированного пользователя.В противном случае страница должна быть доступна.

1 Ответ

0 голосов
/ 20 сентября 2018

Одним из вариантов будет использование декоратора login_required в конфигурации URL:

from django.contrib.auth.decorators import login_required

urlpatterns = [
    # ...
    path('me/', login_required(profile_view), name='my_profile'),
    path('<uuid:account_id>/', profile_view, name='user_profile')
]

Затем удалите login_required из самого profile_view.

...