试图运行C:\ Python34 / python manage.py makemigrations,我收到以下错误:
错误
WARNINGS: ?: (urls.w005) URL namespace 'admin' isn't unique. You may not be able to reverse all URLS in this namespace
我究竟需要更改什么以及需要查看哪些内容?
教师/ url.py
from django.contrib import admin
from django.urls import path
from django.urls import include, path
from . import views
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.teachers, name='teachers'),
]
url.py
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('main.urls')),
path('teachers/', include('teachers.urls')),
]
主要/ url.py
urlpatterns = [
path('admin/', admin.site.urls),
path('header/', views.header, name='header'),
path('', views.index, name='index'),
]
我已粘贴上面的各种url.py文件,并想象它在那里的某个地方是个问题。有谁能请我指出正确的方向,请说明一下吗?
我认为我可以/应该删除
路径(' admin /',admin.site.urls),
除了urls.py文件(root)以外的所有内容.....当我删除它时,我没有得到同样的错误,但我不知道这是否会导致其他问题如果这是正确的做法?
答案 0 :(得分:3)
你宣布
path('admin/', admin.site.urls),
在你的网址文件中三次。您只需在项目的 root urls.p y中声明一次。
答案 1 :(得分:1)
您的错误源于在所有url.py文件中重复path('admin/', admin.site.urls),
。它通常只在其他人指出的根级别声明。
想想这样 - 你不会想为每个应用程序设置一个单独的管理界面,而是希望能够从一个管理界面管理所有应用程序,这正是你发生的事情。只在root urls.py文件中使用它。
此外,尽管应用程序应该是模块化且独立的,但它们仍然需要连接到项目才能工作。
答案 2 :(得分:0)
这是因为该管理路径的多个声明。从项目的url.py之外的urls.py文件中删除那些多余的 path('admin /',admin.site.urls)行。