Djangoでくじ引きアプリを作ってみる_part7

lottery-146318_1280.png Django

前回の続きで、くじ引きアプリを作成していきます。

【前回のまとめ】

・くじ引き実行ページを作成する

【今回の作業】

・ログイン/ログアウト画面の準備をする

今回からは、ログイン/ログアウト機能を追加していきます。
まずは、ログイン/ログアウト画面の準備をしていきたいと思います。

設定は今までの差分を利用しますので、初めから設定したい方は以下記事を参照してください。

Djangoでくじ引きアプリを作ってみる_part1

Djangoでくじ引きアプリを作ってみる_part2

Djangoでくじ引きアプリを作ってみる_part3

Djangoでくじ引きアプリを作ってみる_part4

Djangoでくじ引きアプリを作ってみる_part5

Djangoでくじ引きアプリを作ってみる_part6

・ログイン/ログアウト画面の準備をする

【手順】

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/')),
]

これで準備は終わりました、次回実際に画面を作成していきます。

ありがとうございました。

【参考にしたサイトと本】

03:ログイン・ログアウト画面を用意しよう

Python Django3超入門 (日本語) 単行本 – 2020/6/13

コメント

タイトルとURLをコピーしました