Ограничить доступ к странице регистрации.Как сделать его доступным только для не прошедших проверку пользователей? - PullRequest
0 голосов
/ 24 февраля 2019

У меня есть страница регистрации и используется логин по умолчанию:

urlpatterns = [
    ...
    path('accounts/', include('django.contrib.auth.urls')),
    ...
]

Но вопрос в том, как сделать его доступным только для неаутентифицированных пользователей?Для страницы регистрации (которую я вижу) я пытаюсь сделать

if not request.user.is_authenticated:
   ...
else:
   redirect(...)

Так что же делать со страницей входа?Спасибо)

Ответы [ 2 ]

0 голосов
/ 24 февраля 2019

Просто поднять 404, ошибка не найдена:

from django.http import Http404
    # ..... 
    if request.user.is_authenticated:
        raise Http404 ('Not Available')
    else:
        # ....
0 голосов
/ 24 февраля 2019

На самом деле, у меня также была такая же проблема, как эта, но у LoginView есть атрибут -> redirect_authenticated_user

redirect_authenticated_user: логическое значение, которое определяет, будут ли перенаправленные пользователи, обращающиеся к странице входа, перенаправляться какесли они только что успешно вошли в систему. По умолчанию используется значение False.

from django.contrib.auth import views

url(r'^login/$', views.LoginView.as_view(template_name='account/login.html', redirect_authenticated_user=True), name='login'),

и пользователь не сможет перейти на страницу входа,

Надеюсь, это поможет

...