こんにちは。
Djangoのログイン機能実装に向けて学習しているのですが、
解決できない部分がありましたので、ご助力をしていただきたく、質問しました。
下記情報で不足などありましたら、コメント記載お願い致します。
前提・実現したいこと
【目的】
ログイン画面を表示させたい。
(localhost:8000/login/画面が表示できるようにしたい。)
【環境】
環境は以下のようになっています。
python
1# 階層は以下のようになっています。 2 3manage_pj # (プロジェクト名) 4 ├ manage.py 5 ├ db.sqlite3 6 ├ loginfunction # 今回作成しているlogin用のアプリ 7 ├ manage_apps # settings.pyなどがあるところ 8 └ manager # その他アプリ 9
python
1# loginfunctionの階層についてtemplateの部分を記載 2loginfunction 3 ├ template 4 ├ loginfunction 5 │ ├ index.html 6 │ ├ login.html 7 │ ├ password_change_done.html 8 │ ├ # 以下パスワード設定関連のHTMLファイルが複数 9 │ 10 ├ _form.html 11 └ base.html
こちらを参照しながら、作成を進めています。
(エラーが出たのは、このページの最終確認工程でです。)
発生している問題・エラーメッセージ
上図のような画面が、ローカルサーバーにアクセスしたときに表示されます。
また、この画面下には
とも表示されています。
該当のソースコード
settings.py
python
1 2# INSTALLED_APPSには、今回のlogin機能用にアプリをloginfunctionという名で追記しています。 3INSTALLED_APPS = [ 4 'django.contrib.admin', 5 'django.contrib.auth', 6 'django.contrib.contenttypes', 7 'django.contrib.sessions', 8 'django.contrib.messages', 9 'django.contrib.staticfiles', 10 "manager", 11 "bootstrap4", 12 "loginfunction", # 追加 13] 14 15 16# TEMPLATESはデフォルトのままにしていると思います。 17TEMPLATES = [ 18 { 19 'BACKEND': 'django.template.backends.django.DjangoTemplates', 20 'DIRS': [], 21 'APP_DIRS': True, 22 'OPTIONS': { 23 'context_processors': [ 24 'django.template.context_processors.debug', 25 'django.template.context_processors.request', 26 'django.contrib.auth.context_processors.auth', 27 'django.contrib.messages.context_processors.messages', 28 ], 29 }, 30 }, 31] 32 33
urls.py
python
1from django.contrib import admin 2from django.urls import path, include 3from django.contrib.auth.decorators import login_required # login機能実装に向けて、追記 4 5from django.views.generic import TemplateView # login機能実装に向けて、追記 6 7index_view = TemplateView.as_view(template_name="loginfunction/index.html") 8 9urlpatterns = [ 10 path('admin/', admin.site.urls), 11 path("", login_required(index_view), name="index"), # login機能実装に向けて、追記 12 path("", include("django.contrib.auth.urls")), # login機能実装に向けて、追記 13 path("", include("manager.urls")), # もともとあったmanagerアプリ作成時に記入 14] 15
試したこと
エラーMsgにあるように、Djangoが見に行っているtemplateの参照先が「registration/login.html」になってしまっているのが原因だと思います。
(こちらとしては、「loginfunction/login.html」を見てほしい。)
そのため、settings.pyなどでアプリの追加忘れなど調査してみましたが、
追加忘れはありませんでした。
補足情報(FW/ツールのバージョンなど)
Django : 3.1.7
Python : 3.9.1
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。