Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Django Project: namespace 'admin' isn't unique

on trying to run C:\Python34/python manage.py makemigrations, I get the following error: (following a tutorial from www.testandtrack.io)

Error

WARNINGS: ?: (urls.w005) URL namespace 'admin' isn't unique. You may not be able to reverse all URLS in this namespace

What precisely do I need to change and where do I need to look?

teachers/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')),
]

main/url.py

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

I've pasted the various url.py files above and imagine it's a problem somewhere there. could anyone please point me in the right direction, with an explanation please?

I've considered that I could/should remove

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

from all but the urls.py file (root) .....when I do remove this, I don't get the same error, but I don't know if that will cause other problems and if this is the right thing to do?

like image 986
Compoot Avatar asked Dec 21 '17 21:12

Compoot


2 Answers

You are declaring

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

three times in your urls files. You just have to declare it once in the root urls.py of your project.

like image 62
schrodigerscatcuriosity Avatar answered Sep 21 '22 15:09

schrodigerscatcuriosity


Set your main/urls.py as

from django.urls import path
from django.views.generic import TemplateView

urlpatterns = [ 
    path(
        "header/", 
        TemplateView.as_view(template_name="header.html")),
]

And fix this inside the main URLs file teachers/urls.py as follows:

from django.contrib import admin
from django.urls import path, include
from django.conf import settings


urlpatterns = [
    path(
        'admin/', 
         admin.site.urls), 
    path('', 
         include('main.urls')),
] 
like image 23
Patrick Avatar answered Sep 25 '22 15:09

Patrick