Menu
CoddyTech

Вход в систему

Часть раздела Пользователи и учетные записи путешествия по 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.

challenge icon

Задание

Легко

Добавьте страницу входа.

  1. В mysite/urls.py подключите django.contrib.auth.urls по адресу accounts/.
  2. Создайте notes/templates/registration/login.html, расширяющий notes/base.html, который отображает form в форме POST с {% csrf_token %} и кнопкой Log in.
  3. В settings.py установите для LOGIN_REDIRECT_URL значение "/".
  4. В 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")),
]

Все уроки раздела Пользователи и учетные записи

Потренируйтесь самостоятельно: Песочница Django