前回の続きで、くじ引きアプリを作成していきます。
【前回のまとめ】
・くじ引き実行ページを作成する
【今回の作業】
・ログイン/ログアウト画面の準備をする
今回からは、ログイン/ログアウト機能を追加していきます。
まずは、ログイン/ログアウト画面の準備をしていきたいと思います。
設定は今までの差分を利用しますので、初めから設定したい方は以下記事を参照してください。
・ログイン/ログアウト画面の準備をする
【手順】
1.settings.pyを修正する
まずはプロジェクト共通で利用するテンプレートを作成するための準備として、settings.pyを修正します。
ファイル:myapptdl>tdl>settings.py
コード:
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], #追加 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] WSGI_APPLICATION = 'myapp.wsgi.application' LOGIN_REDIRECT_URL = '/' #追加
TEMPLATESのDIRSに「os.path.join(BASE_DIR, ‘templates’)」を追加します。
「os.path.join」とは引数で指定されたパスの名前を結合するための関数です。
「BASE_DIR」変数の中身はsettings.pyの中に記載されていて、以下になっています。
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
続いて、ログインした後に表示するリダイレクト先の設定をするため、「LOGIN_REDIRECT_URL = ‘/’」を追加しています。
次に先ほど指定した「templates」ディレクトリを作成します。
また、templatesの直下にさらに「registration」というフォルダを作成します。
Djangoのユーザ認証機能を使用する場合はデフォルトで、「registration/login.html.」となっているため、この名前は変えてはいけません。
詳細は以下を参照。https://docs.djangoproject.com/ja/3.0/topics/auth/default/
2.テンプレート用のフォルダを作成する
テンプレートを保存するためのフォルダを作成しておきます。
フォルダ構成:myapptdl>templates>registration
3.プロジェクトのurls.pyを修正する
最後に、プロジェクトのurls.pyにログイン用のルーティングを追加しておきます。
ファイル:myapptdl>myapptdl>urls.py
コード:
from django.contrib import admin from django.urls import path, include from django.views.generic import RedirectView urlpatterns = [ path('admin/', admin.site.urls), path('tdl/', include('tdl.urls')), path('accounts/', include('django.contrib.auth.urls')), #追加 path('', RedirectView.as_view(url='/tdl/')), ]
これで準備は終わりました、次回実際に画面を作成していきます。
ありがとうございました。
【参考にしたサイトと本】
コメント