前回の続きで、くじ引きアプリを作成していきます。
【前回のまとめ】
・くじ引き実行ページを作成する
【今回の作業】
・ログイン/ログアウト画面の準備をする
今回からは、ログイン/ログアウト機能を追加していきます。
まずは、ログイン/ログアウト画面の準備をしていきたいと思います。
設定は今までの差分を利用しますので、初めから設定したい方は以下記事を参照してください。
・ログイン/ログアウト画面の準備をする
【手順】
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/')),
]
これで準備は終わりました、次回実際に画面を作成していきます。
ありがとうございました。
【参考にしたサイトと本】

コメント