【发布时间】:2017-11-13 14:35:31
【问题描述】:
我正在开发一个使用 Django 1.10 的网站,我正在尝试设置我的管理站点,以便 URL 位于“/pcari/admin”而不是“/admin”
这是我的根 urls.py:
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
# Admin site
url(r'^admin/', admin.site.urls),
# Regular site
url(r'^pcari/', include('pcari.urls')),
]
这是我的应用程序 urls.py:
from django.conf.urls import url
from django.contrib import admin
from . import views
app_name = 'pcari'
urlpatterns = [
# Admin site
url(r'^admin/', admin.site.urls),
# User-facing views
url(r'^$', views.index, name='index'),
...
]
此设置技术上的工作原理是,如果我访问“127.0.0.1:8000/pcari/admin”,我会得到管理站点,但如果我访问“127.0.0.1”,我也会得到管理站点:8000/admin",这是我不想要的。
但是,如果我从根 urls.py 文件中删除“url(r'^admin/', admin.site.urls)”行,当我尝试访问“127.0.0.1”时会出现奇怪的错误:8000/pcari/admin":
NoReverseMatch at /pcari/admin/
u'admin' is not a registered namespace
Request Method: GET
Request URL: http://127.0.0.1:8000/pcari/admin/
Django Version: 1.10.5
Exception Type: NoReverseMatch
Exception Value:
【问题讨论】:
-
你为什么不把
url(r'^admin/', admin.site.urls)改成url(r'^pcari/admin/', admin.site.urls)?
标签: python django django-admin django-urls