Вход в систему
Часть раздела Пользователи и учетные записи путешествия по Django на Coddy. Урок 2 из 16.
Сайт может определить, кто вошёл в систему, но на нём нет страницы входа. В Django есть представление LoginView. Одна строка в файле urls.py проекта добавляет его вместе со страницами выхода из системы и смены пароля:
path("accounts/", include("django.contrib.auth.urls")),Теперь есть /accounts/login/ с именем login. Представление отображает registration/login.html с form, в которой есть поля username и password. Этот шаблон тебе нужно написать самостоятельно: это обычная форма POST. Django ищет шаблоны в папке templates/ каждого приложения. Путь начинается с registration/, а не с notes/, потому что представление Django не знает, в каком приложении оно находится.
После успешного входа представление перенаправляет на LOGIN_REDIRECT_URL. Значение по умолчанию — /accounts/profile/ — здесь не существует, поэтому укажи нужное значение в settings.py.
Задание
ЛегкоДобавьте страницу входа.
- В
mysite/urls.pyподключитеdjango.contrib.auth.urlsпо адресуaccounts/. - Создайте
notes/templates/registration/login.html, расширяющийnotes/base.html, который отображаетformв форме POST с{% csrf_token %}и кнопкойLog in. - В
settings.pyустановите дляLOGIN_REDIRECT_URLзначение"/". - В
base.htmlдля вышедших из системы посетителей добавьте ссылкуLog inна{% url 'login' %}.
Войдите как ada (пароль coddy-pass-123): в заголовке отображается «Выполнен вход как ada».
Попробуйте сами
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path("admin/", admin.site.urls),
path("", include("notes.urls")),
]
Все уроки раздела Пользователи и учетные записи
3Ваши собственные данные
У заметки есть владелецТолько мои заметкиПотренируйтесь самостоятельно: Песочница Django