django.template.exceptions.TemplateDoesNotExist: registration/login.html
エラーの原因は、Djangoがデフォルトで探すログインテンプレートが見つからないことです。Djangoのデフォルトでは、ログインビューは registration/login.html を使用しますが、これが見つからないためにエラーが発生しています。
対応策としては、以下のいずれかの方法を選択できます:
- デフォルトテンプレートの作成:
registrationフォルダをプロジェクトのテンプレートディレクトリに作成し、その中にlogin.htmlを配置してください。プロジェクトのルートディレクトリにtemplatesフォルダがない場合は、作成してください。markdown your_project/ ├── your_project/ │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── ... ├── templates/ │ └── registration/ │ └── login.html └── ...
- ログインビューでテンプレート名を指定する:
ログインビューで使用するテンプレート名を明示的に指定します。先程のCustomLoginViewを以下のように修正します。python # views.py from django.contrib.auth.views import LoginView from django.shortcuts import render def home(request): return render(request, 'home.html') class CustomLoginView(LoginView): template_name = 'your_app/login.html' # あなたのアプリケーション名を使ってパスを指定そして、この
your_app/login.htmlを作成し、ログインフォームのカスタマイズを行います。
どちらかの方法でエラーが解消されるはずです。お好みの方法を選んで試してみてください。

ディスカッション
コメント一覧
まだ、コメントがありません