Я получаю следующую ошибку: "Файл "C:\Users\odesm\anaconda3\envs\adb3\lib\site-packages\django\urls\base.py", строка 83, наоборот поднять NoReverseMatch("%s не является зарегистрированным пространством имен" % ключ) django.urls.exceptions.NoReverseMatch: «учетные записи» не являются зарегистрированным пространством имен»
Я рассмотрел аналогичные ошибки при переполнении стека и попытался их решить, но ни одно из них не кажется применимым. Я не понимаю, каким образом мне не удалось зарегистрировать пространство имен, когда оно было указано в пути (include(namespace="")), и я включил app_name="app_name" в соответствующий файл url.py.
base.html (фрагмент, выдающий ошибку)
<li class = "nav-item">
<a class = "nav-link" href = "{% url 'accounts:login' %}">Login</a>
</li>
urls.py (в приложении sitemanger)
app_name = 'sitemanager'
urlpatterns = [
path('', views.HomeView.as_view(), name='site-home'),
path('accounts/', include('accounts.urls', namespace='accounts')),
path('accounts/', include('django.contrib.auth.urls')),
]
urls.py (для приложения учетных записей)
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(template_name='accounts/logout.html'), name='logout'),
path('signup/', views.SignUpView.as_view(template_name='accounts/signup.html'), name='signup'),
path('edit/', views.UpdateProfileView.as_view(template_name='accounts/update_profile.html'), name='edit'),
path('<slug:username>/', views.ProfileView.as_view(template_name='accounts/profile.html'), name='profile')
]
Мне кажется, что я зарегистрировал правильное пространство имен, но кажется, что моя логика где-то ошибается.
Поскольку у меня есть urls.py для приложения учетных записей, включенного в urls.py для моего приложения sitemanager, мне также нужно было маршрутизировать через sitemanager.
Следовательно, следующее
<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 'sitemanager:accounts:login' %}">Login</a>
</li>