一段时间以来,我一直在使用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'))
]
答案 0 :(得分:0)
当您要求/add/
带有斜杠时,该路径与add
路径不匹配,但与<slug:project_slug>/
路径匹配,因此它将尝试使用{ {1}}设置为“添加”。