我相信这是一个简单的问题,但我很难弄清楚为什么这不起作用。
我有一个django项目,我添加了第二个应用程序(销售(。 在第二个应用程序之前,我的 urls.py 只是将所有内容路由到第一个应用程序(图表(,如下所示:
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('chart.urls')),
]
而且效果很好。
我已经一遍又一遍地阅读了文档,看了很多教程,所以我的印象是我可以简单地修改 urls.py 以包括:
urlpatterns = [
path('admin/', admin.site.urls),
path('sales/', include('sales.urls')),
path('', include('chart.urls')),
]
它应该首先查找带有 sales/的 URL,如果找到,则应将其路由到 sales.urls,如果找不到,则继续前进并将其路由到 chart.urls。 但是,当我加载它并输入 127.0.0.1:8000/sales 时,它返回以下错误:
Page not found (404)
Request Method: GET
Request URL: http://127.0.0.1:8000/sales/
Raised by: chart.views.index
这告诉我它不是将我的 sales/url 路由到 sales.urls,而是路由到 chart.urls。 当我将path('', include('chart.urls'))
更改为path('', include('sales.urls'))
时,它确实将其路由到 sales.urls,因此我知道我的 sales.urls 文件设置正确。
我知道这可能是一个简单的问题,但我无法用我读过的任何东西来弄清楚。 任何帮助,不胜感激。
图表网址:
from django.urls import path, re_path
from . import views
urlpatterns = [
path('dashboard/', views.chart, name='dashboard'),
path('', views.index, name='index', kwargs={'pagename': ''}),
path('<str:pagename>/', views.index, name='index'),
]
销售网址:
from django.urls import path
from . import views
urlpatterns = [
path('sales/', views.sales, name='Sales Dashboard'),
]
我认为在您的情况下销售页面的正确网址是http://127.0.0.1:8000/sales/sales/
。
这是因为sales/
随后在包含的sales.urls
中查找,并且在根/
找不到任何 url(其中包含的唯一 url 位于 sales/
(在 sales/
内(,因此将sales/sales/
回答一个旧问题,但可能对其他人有用...
from django.urls import path, include
不要为获取导入包括
这样做:
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^', include('chart.urls')),
url(r'^sales/', include('sales.urls')),
]
您没有正确执行此操作,因为您没有告诉您的应用程序在加载后转到何处.this r'^'
直接转到 chart.url url(r'^', include('chart.urls')),