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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django项目:名称空间'admin'不是唯一的相关的知识,希望对你有一定的参考价值。

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

答案

你在宣布

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

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

另一答案

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

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

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

以上是关于Django项目:名称空间'admin'不是唯一的的主要内容,如果未能解决你的问题,请参考以下文章

Django——admin组件简单入门

Django 项目:命名空间“管理员”不是唯一的

Django-admin组件

Django通过pycharm创建后,如何登录admin后台?

django创建第一个项目时,输入django-admin.py startproject djangoweb后,会提示: 这个是啥原因啊?

191112Django项目常用配置