Django Registration/Login App (10 серии деталей)
Как дела, парни! Во второй и последней части нашей системы входа/входа мы собираемся:
- Создайте шаблоны входа и входа в систему в каталоге шаблонов нашего приложения.
- Изменить base.html и home.html Чтобы настроить то, что пользователь видит на основе его статуса аутентификации.
- Изменить
RegisterView
Внутри views.py Чтобы пользователи не получали доступ к странице регистрации во время аутентификации. - Измените мертвые ссылки, чтобы указать на шаблоны входа/входа в систему, когда они у нас есть.
Login.html
{% extends "users/base.html" %} {% block title %} Login Page {% endblock title%} {% block content %}{% endblock content %}{% if form.errors %}Sign In
{% endif %}{% for key, value in form.errors.items %} {{ value }} {% endfor %}
- Мы добавим социальную аутентификацию в другой части, но пока Войдите с Google и Войдите с GitHub мертвые ссылки.
logout.html
{% extends "users/base.html" %} {% block title %}Logout{% endblock title %} {% block content %}{% endblock content %}You have been logged out
Thanks for your time, contact me for any comments or suggestions using my email address.
Sign in again
Модификации
- Open base.html И перейдите к линии, где у нас есть список навигационных элементов, и вместо этого добавьте следующий фрагмент. Это отобразит правильный элемент навигации в зависимости от того, что
user.is_authenticated
возврат.
base.html
Измените мертвые ссылки в Register.html и Home.html Чтобы указать на страницы входа и входа в систему, так как у нас сейчас их есть.
Измените представление регистра внутри views.py – Пользователи могут захотеть получить доступ к странице регистрации, пока они аутентифицируются, чтобы избежать этого, давайте переопределим отправка метод
Добавьте следующий метод выше метода получить RegisterView учебный класс.
views.py
def dispatch(self, request, *args, **kwargs): # will redirect to the home page if a user tries to access the register page while logged in if request.user.is_authenticated: return redirect(to='/') # else process dispatch as it otherwise normally would return super(RegisterView, self).dispatch(request, *args, **kwargs)
И последнее, но не менее важное, лучше перенаправить пользователя на страницу входа в систему после регистрации. Поскольку у нас не было страницы для входа при создании страницы регистрации, мы перенаправляли пользователя на домашнюю страницу, но теперь, когда у нас есть страница для входа в систему, делая что -то подобное внутри RegisterView
Класс – возвращаться)
.
- Хорошо, почти закончено …
Это работает как должно?
- Запустите сервер разработки и запустите обычную команду
Python Manage.py Runserver
в вашем терминале. - Зайдите в Localhost и поиграйте с ним, посмотрите, работает ли все нормально.
Спасибо за ваше время. Вы можете найти готовое приложение в GitHub . Увидимся в следующий раз с другой частью серии.
Любые комментарии и предложения приветствуются.
Django Registration/Login App (10 серии деталей)
Оригинал: “https://dev.to/earthcomfy/django-login-logout-system-part-ii-48o5”