ログイン
CoddyのDjangoジャーニー「ユーザーとアカウント」セクションの一部。レッスン 2/16。
サイトは誰がサインインしているかを判別できますが、サインインするためのページがありません。Djangoには、LoginViewビューがあります。プロジェクトのurls.pyに1行追加すると、ログアウトページとパスワードページも利用できるようになります。
path("accounts/", include("django.contrib.auth.urls")),これで/accounts/login/が存在し、名前はloginです。このビューは、usernameフィールドとpasswordフィールドを持つformとともに、registration/login.htmlを表示します。このテンプレートは自分で作成します。通常のPOSTフォームです。Djangoは、各アプリのtemplates/フォルダー内でこのテンプレートを探します。Djangoのビューはどのアプリを使うか知らないため、テンプレート名にはアプリ名が含まれません。
ログインに成功すると、このビューはLOGIN_REDIRECT_URLにリダイレクトします。デフォルトの/accounts/profile/はここには存在しないため、settings.pyで設定してください。
チャレンジ
簡単mysite/urls.pyで、accounts/の下にdjango.contrib.auth.urlsを含めます。notes/templates/registration/login.htmlを作成します。このファイルはnotes/base.htmlを継承し、Log inボタンのあるPOSTフォームにformを表示します。- ログインに成功すると、
/に移動します。 You are not signed in.の下に、Log inへのリンクを置きます。
Runを押してから、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プレイグラウンド