django.template.exceptions.TemplateDoesNotExist: registration/login.html

2024年6月23日

問題は、Djangoがデフォルトで探すログインテンプレート registration/login.html が見つからないことです。これがエラーの原因です。

解決策としては、以下の2つの方法があります。

  1. デフォルトテンプレートの作成:
    registration フォルダをプロジェクトのテンプレートディレクトリに作成し、その中に login.html を配置してください。プロジェクトのルートディレクトリに templates フォルダがない場合は、作成してください。

    markdown
    your_project/
    ├── your_project/
    │   ├── __init__.py
    │   ├── settings.py
    │   ├── urls.py
    │   └── ...
    ├── templates/
    │   └── registration/
    │       └── login.html
    └── ...
    
  2. ログインビューでテンプレート名を指定する:
    ログインビューで使用するテンプレート名を明示的に指定します。CustomLoginViewtemplate_name を修正して、'tools/login.html' を指定します。

    python
    # views.py
    from django.contrib.auth.views import LoginView
    from django.shortcuts import render
    
    class CustomLoginView(LoginView):
        template_name = 'tools/login.html'  # パスを修正
    

どちらの方法でも問題は解決できます。どちらかを選択し、適切に実装してください。

未分類

Posted by ぼっち