django-регистрация: как проверить, вошел ли пользователь в систему перед отображением страницы
я следовал на этой странице для настройки сайта регистрации django. Это довольно удивительно, и регистрация и аутентификация красиво завернуты.
но он не показывает мне, как проверить, вошел ли пользователь, кто этот пользователь, перед отображением веб-страницы? и как направить пользователя на новую страницу после входа в систему?
спасибо!
3 ответов
в представлении, вы можете использовать if request.user.is_authenticated():
и переменная для текущего пользователя request.user
в шаблоне, вы можете использовать {% if user.is_authenticated %}
и переменная для текущего пользователя user
для перенаправления пользователя после входа в систему, можно настроить LOGIN_REDIRECT_URL
переменная settings.py
In .py документы
вы можете использовать это внутри каждого вида
if not request.user.is_authenticated():
#do something
или это непосредственно перед каждым видом
@login_required
помните, что этот требует импорта from django.contrib.auth.decorators import login_required
и вы также можете написать LOGIN_URL = "/loginurl/"
в своем settings.py
чтобы перенаправить незарегистрированных пользователей на определенный URL-адрес вместо стандартного accounts/login
)
In .формат html документы
{% if not user.is_authenticated %}
Login is required
{% endif %}
перенаправление после входа в систему
вы можете изменить LOGIN_REDIRECT_URL
на settings.py
или redirect("/indexpage")
после входа пользователя в систему.
Этот последний требует импорта from django.shortcuts import redirect
вы также можете использовать логин требуется декоратор перед вашим видом:
@login_required()
его перенаправляет пользователя на страницу входа, если пользователь пытается получить доступ к вашей точки зрения
вы найдете на этой странице : https://docs.djangoproject.com/en/dev/topics/auth/default/#topic-authorization