【问题标题】:?: (urls.W005) URL namespace 'main' isn't unique. You may not be able to reverse all URLs in this namespace?: (urls.W005) URL 命名空间“主”不是唯一的。您可能无法反转此命名空间中的所有 URL
【发布时间】:2019-06-28 13:25:55
【问题描述】:

运行python manage.py runserver时出现此错误

?: (urls.W005) URL 命名空间 'main' 不是唯一的。你可能无法 反转此命名空间中的所有 URL

mysite/urls.py

from django.contrib import admin
from django.urls import path, include
from users import views as user_views

urlpatterns = [
    path('register/', user_views.register, name='register'),
    path('', include('main.urls')),
    path('admin/', admin.site.urls),
    path('about/', include('main.urls')),
]

main/urls.py

from django.urls import path
from . import views

app_name = 'main'

urlpatterns = [
    path('', views.blog, name='blog'),
    path("about/", views.about, name="about"),
]

【问题讨论】:

  • 为什么要包含两次 main.urls?
  • 除了@DanielRoseman说的,你不需要app_name = 'main'

标签: python django


【解决方案1】:

path('', include('main.urls')) 表示将包含来自main 的所有 url 模式,而无需任何额外的前缀。

path('asdf/', include('main.urls')) 意味着来自main 的所有网址模式都将包含额外的asdf/ 前缀,因此根索引网址将变为asdf/about/ 将变为asdf/about/(在您的情况下- about/about/)。

如果您在 main.urls 中有 100500 个 url 模式,您仍然只需要包含一次。

【讨论】:

    猜你喜欢
    • 2017-09-28
    • 2019-04-27
    • 1970-01-01
    • 1970-01-01
    • 2020-01-14
    • 1970-01-01
    • 1970-01-01
    • 2019-02-01
    • 2013-11-09
    相关资源
    最近更新 更多