django.urls.exceptions.NoReverseMatch:'admin'不是注册的名称空间

时间:2019-08-02 13:49:15

标签: django

我有一个带有两个应用程序(“项目”和“代码箱”)的Django项目,它们运行良好,然后在某个时候出现以下错误:

  

django.urls.exceptions.NoReverseMatch:'admin'未注册   命名空间

如果我从模板中删除了到管理面板的链接,此错误就消失了,但是我无法进入管理面板:

<a href="{% url "admin:index" %}">Admin</a>

发生此错误时,我正在urls.py文件中工作,是否更改了一些无意对管理员链接产生影响的内容?

这是我的顶级urls.py文件:

from django.contrib import admin
from django.urls import include, path, re_path

urlpatterns = [
    # path('', include('projects.urls')),
    path('projects/', include('projects.urls')),
    re_path('^accounts/', include('django.contrib.auth.urls')),
    re_path('^logged_out/', include('projects.urls')),
    path('codebox/', include('codebox.urls')),
]

这是我的“项目”的urls.py:

from django.urls import path, include
from . import views
app_name = 'projects'

urlpatterns = [
    path('', views.IndexView.as_view(), name='index'),
    path('<int:pk>/', views.DetailView.as_view(), name='detail'),
    path('insight/', views.InsightView.as_view(), name='insight'),
    path('logged_out/', views.LoggedoutView.as_view(), name='loggedout'),
    path('insight/subgen/', views.SubgenView.as_view(), name='subgen'),
]

这是我的第二个应用代码框的urls.py:

from django.urls import path, include
from . import views
app_name = 'codebox'

urlpatterns = [
    path('', views.IndexView.as_view(), name='index'),
    path('<int:pk>/', views.DetailView.as_view(), name='detail'),
    path('form/', views.CreateView, name="form"),
]

2 个答案:

答案 0 :(得分:0)

将此添加到 project/urls.py 的顶部

from django.conf.urls import include, url

然后将其添加到 url_pattern

url(r' ', include(('<app_name>.urls','<app_name>'), namespace='<app_name>')),

希望这会奏效

答案 1 :(得分:-1)

检查您扩展到其他 html 页面的基本 html 文件。如果 urls 标记之间有一些空间,请删除该空间并保存您的文件,然后再试一次,您可以检查以下代码以获取参考。

from django.contrib import admin
from django.urls import path, include
from passapp import views
urlpatterns = [
path('', views.index, name='index'),
path('admin/', admin.site.urls),
path('passapp/', include('passapp.urls')),
]

href="{% url 'admin:index' %}"