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/ каждого приложения. В его имени нет названия приложения, потому что представление Django не знает о ваших приложениях.

После успешного входа представление перенаправляет на LOGIN_REDIRECT_URL. Значение по умолчанию — /accounts/profile/ — здесь не существует, поэтому задайте его в settings.py.

challenge icon

Задание

Легко
  • В mysite/urls.py подключите django.contrib.auth.urls для accounts/.
  • Создайте notes/templates/registration/login.html: он расширяет notes/base.html и отображает form в форме POST с кнопкой Log in.
  • После успешного входа пользователь попадает на /.
  • Под сообщением You are not signed in. разместите ссылку Log in.

Нажмите «Запустить», затем войдите как ada (пароль coddy-pass-123).

Попробуйте сами

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path("admin/", admin.site.urls),
    path("", include("notes.urls")),
]

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

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