TemplateDoesNotExist в /accounts/login/

Я проверил ответы здесь, здесь, здесь и здесь, и хотя я получаю ту же ошибку, очевидно, у меня другая первопричина, поскольку эти ответы не работают у меня.

Вот в чем проблема: я использую Django's LoginView, переопределяя имя шаблона, но это работает только иногда. Если я попадаю на экран входа из навигационной панели, он работает отлично, но тот же самый url, когда я попадаю на него другим методом, выдает template does not exist ошибку. Мой файл URLs:

from django.urls import path
from django.contrib.auth import views as auth_views

from . import views

app_name = "accounts"

urlpatterns = [
    path(
        "login",
        auth_views.LoginView.as_view(template_name="accounts/login.html"),
        name="login",
    ),
    path("logout", auth_views.LogoutView.as_view(), name="logout"),
    path("signup", views.SignUp.as_view(), name="signup"),
]

У меня есть элемент навигации для экрана входа в систему, и он отлично работает. Соответствующий раздел в шаблоне:

{% else %}
<li class="nav-item"><a href="{% url 'groups:all' %}" class="nav-link">Groups</a></li>
<li class="nav-item"><a class="nav-link" href="{% url 'accounts:login' %}">Login</a></li>
<li class="nav-item"><a class="nav-link" href="{% url 'accounts:signup' %}">Sign Up</a></li>
{% endif %}

Если кто-то нажимает на ссылку login в навигационной панели, она переводит вас на http://127.0.0.1:8000/accounts/login и работает отлично.

НО: у меня есть еще одна секция кода, в которой необходимо войти в систему, чтобы ссылка работала, а если вы не вошли, она перенаправляет вас на экран входа. URL входа выглядит хорошо: http://127.0.0.1:8000/accounts/login/?next=/groups/join/test-group-1, но на этот раз вместо экрана входа в систему появляется вот такая ошибка:

TemplateDoesNotExist at /accounts/login/
registration/login.html
Request Method: GET
Request URL:    http://127.0.0.1:8000/accounts/login/?next=/groups/join/test-group-1
Django Version: 4.1.4
Exception Type: TemplateDoesNotExist
Exception Value:    
registration/login.html
Exception Location: /opt/homebrew/anaconda3/envs/py311django/lib/python3.11/site-packages/django/template/loader.py, line 47, in select_template
Raised during:  django.contrib.auth.views.LoginView
Python Executable:  /opt/homebrew/anaconda3/envs/py311django/bin/python
Python Version: 3.11.0
Python Path:    
['/Users/brendenmillstein/Dropbox '
 '(Personal)/BSM_Personal/Coding/Udemy/full_stack_django_tutorial/BSM_materials/python/social_network/simplesocial',
 '/opt/homebrew/anaconda3/envs/py311django/lib/python311.zip',
 '/opt/homebrew/anaconda3/envs/py311django/lib/python3.11',
 '/opt/homebrew/anaconda3/envs/py311django/lib/python3.11/lib-dynload',
 '/opt/homebrew/anaconda3/envs/py311django/lib/python3.11/site-packages']
Server time:    Sun, 05 Feb 2023 06:01:34 +0000

Я уже добавил все приложения в список INSTALLED_APPS в settings,py, а также добавил

BASE_DIR = Path(__file__).resolve().parent.parent
TEMPLATE_DIR = Path.joinpath(BASE_DIR, "templates")

а также добавил TEMPLATE_DIR в список TEMPLATES:

TEMPLATES = [
    {
        "BACKEND": "django.template.backends.django.DjangoTemplates",
        "DIRS": [TEMPLATE_DIR],

Тот факт, что логин работает, когда я попадаю на него из навигационной панели, но не работает в другое время, сбивает меня с толку.

Что я упускаю? Я не понимаю, почему один и тот же URL работает, если вы попадаете на него, нажав на Nav, но не работает, если вы попадаете на него, нажав на ссылку, для использования которой вам нужно войти в систему. Что-то не так в части URL ?next=? Я думал, что это не должно иметь значения.

Пришлите помощь, я тут с ума схожу, пытаясь заставить это работать.

Возможно, Django ищет неправильное имя шаблона, попробуйте проверить его, возможно, это template_name="registration/login.html" в LoginView.

Также проверьте template_name в том представлении, которое имеет маршрут /groups/join/test-group-1.

Примечание: Я бы рекомендовал добавить в конце каждого маршрута концевую строку /, поэтому в urls.py:

from django.urls import path
from django.contrib.auth import views as auth_views

from . import views

app_name = "accounts"

urlpatterns = [
    path(
        "login/",
        auth_views.LoginView.as_view(template_name="accounts/login.html"),
        name="login",
    ),
    path("logout/", auth_views.LogoutView.as_view(), name="logout"),
    path("signup/", views.SignUp.as_view(), name="signup"),
]
Вернуться на верх