Django项目:名称空间'admin'不是唯一的

问题描述 投票:1回答:2

在尝试运行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.朋友

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)之外的所有.....当我删除它时,我没有得到相同的错误,但我不知道是否会导致其他问题,如果这是正确的事情去做?

django migration unique admin models
2个回答
3
投票

你在宣布

path('admin/', admin.site.urls),

你的网址文件中有三次。您只需在项目的根urls.py中声明一次。


1
投票

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

想象一下 - 你不希望每个应用程序都有一个单独的管理界面,而是你希望能够从一个管理界面管理你的所有应用程序,这正是当你只在root urls.py文件。

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

© www.soinside.com 2019 - 2024. All rights reserved.