Django 项目:命名空间“admin”不是唯一的

Mis*_*ing 7 migration django admin unique models

在尝试运行 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
Run Code Online (Sandbox Code Playgroud)

我到底需要改变什么,我需要在哪里看?

教师/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'),

]
Run Code Online (Sandbox Code Playgroud)

网址.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')),
]
Run Code Online (Sandbox Code Playgroud)

主/ url.py

urlpatterns = [
    path('admin/', admin.site.urls),
    path('header/', views.header, name='header'),
    path('', views.index, name='index'),

]
Run Code Online (Sandbox Code Playgroud)

我已经粘贴了上面的各种 url.py 文件,并想象那里的某个地方有问题。任何人都可以指出我正确的方向,请解释一下吗?

我认为我可以/应该删除

路径('管理员/',admin.site.urls),

除了 urls.py 文件(根).....当我删除它时,我没有得到同样的错误,但我不知道这是否会导致其他问题,这是否是正确的去做?

gui*_*rro 11

你在声明

path('admin/', admin.site.urls),
Run Code Online (Sandbox Code Playgroud)

在你的 urls 文件中三遍。您只需在项目的根 urls.py 中声明一次即可。


Jon*_*ter 7

您是正确的,因为错误源于path('admin/', admin.site.urls),在您的所有 url.py 文件中重复。正如其他人指出的那样,它通常只在根级别声明。

可以这样想 - 您不希望每个应用程序都有一个单独的管理界面,而是希望能够从一个管理界面管理所有应用程序,这正是您仅在根 urls.py 文件。

此外,虽然应用程序应该是模块化和独立的,但它们仍然需要连接到项目才能工作。