Menu
CoddyTech

ログイン

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で設定してください。

challenge icon

チャレンジ

簡単
  • 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プレイグラウンド