Django 异常未注册命名空间

Django Exceptions Unregistered Namespace

我收到以下错误: “文件“C:\Users\odesm\anaconda3\envs\adb3\lib\site-packages\django\urls\base.py”,第 83 行,反向 raise NoReverseMatch("%s 不是注册的命名空间" % key) django.urls.exceptions.NoReverseMatch: 'accounts' 不是注册的命名空间"

我查看了有关堆栈溢出的类似错误并尝试了他们的解决方案,但其中 none 似乎适用。我不明白在路径中指定名称空间时我以何种方式未能注册名称空间(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(在站点管理器应用下)

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 中,因此我也需要通过站点管理器进行路由。

因此以下内容

<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>