GET http:// localhost:8000 / add /找不到页面

时间:2019-09-20 18:09:51

标签: python django

一段时间以来,我一直在使用localhost:8000来处理此应用程序,并且一切都进行得很顺利。但是,现在我已经尝试添加新的URL:/ add /。由于某种原因,它无法识别该URL。我相信我编写代码的方式也许有问题,但我还没有找到。任何帮助都会很棒!

要提供上下文,我首先在urls.py文件中创建了新路径:path('add', views.ProjectCreateView.as_view(), name='add'),

然后我移到我的views.py文件并按如下方式导入CreateView: from django.views.generic import CreateView

然后从那里为该视图创建一个类:

class ProjectCreateView(CreateView):
    model = Project
    template_name = 'budget/add-project.html'
    fields = ('name', 'budget')

在此之后,我然后在嵌套在模板文件夹中的预算文件夹中创建了另一个文件。文件名add-project.html。我认为此文件没有任何问题,只是为了保证这就是我链接html文件的方式:

{% extends 'budget/base.html' %}
{% load static %}
{% block content %}

这是我运行http://localhost:8000/add/

时得到的确切信息

“没有项目匹配给定查询。”

主工作文件夹中的ULRS.PY:

from django.contrib import admin
from django.urls import path
from . import views

urlpatterns = [
    path('', views.project_list, name='list'),
    path('add', views.ProjectCreateView.as_view(), name='add'),
    path('<slug:project_slug>/', views.project_detail, name='detail')
]

子文件夹中的URLS.PY:

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



urlpatterns = [
       path('admin/', admin.site.urls),
       path('',include('budget.urls'))
   ]

1 个答案:

答案 0 :(得分:0)

当您要求/add/带有斜杠时,该路径与add路径不匹配,但与<slug:project_slug>/路径匹配,因此它将尝试使用{ {1}}设置为“添加”。