python - Django - 删除按钮未重定向到正确的路径
问题描述
我正在按照教程制作待办事项列表网站。在尝试实现删除按钮时,我遇到了这个错误。
找不到页面 (404) 请求方法:GET 请求 URL: http://localhost:8000/%7B%25%20url%20 'delete'%20things.id%20%25 使用在 todo.urls 中定义的 URLconf,Django尝试了这些 URL 模式,按以下顺序: admin/ [name='home'] delete/"" [name='delete'] 当前路径 {% url 'delete' things.id %,不匹配任何这些。
相关代码: views.py
from django.shortcuts import render, redirect
from .models import List
from .forms import ListForm
from django.contrib import messages
# Create your views here.
def home(request):
if request.method == 'POST':
form = ListForm(request.POST or None)
if form.is_valid():
form.save()
all_items = List.objects.all
messages.success(request, ('Item Has Been Added To List!'))
return render(request, 'home.html', {'all_items': all_items})
else:
all_items = List.objects.all
return render(request, 'home.html', {'all_items': all_items})
def delete(request, list_id):
item = List.objects.get(pk=list_id)
item.delete()
messages.success(request, ('Item Has Been Deleted!'))
return redirect('home')
主页.html
<tr>
<td>{{ things.item }}</td>
<td><center>{{ things.completed }}</center></td>
<td><center><a href = "{% url 'delete' things.id %}"> Delete</a></center></td>
</tr>
网址.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name="home"),
path('delete/<list_id>', views.delete, name="delete"),
]
解决方案
网址.py:
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name="home"),
path('delete/<int:list_id>/', views.delete, name="delete"),
]
您需要int
在 url 中指定类型。
还有尾随/
推荐阅读
- reactjs - 在移动视图上遇到 CSS 格式问题
- windows - 我可以在 Windows 7 中禁用看门狗定时器吗?
- html - 为什么 div 内的嵌套跨度不遵循该 div 的行高规则?
- javascript - 单击事件后无法使用 jQuery 更新 Materialize.css 工具提示
- react-native - 如何使用 React-Native-FS mkdir
- c# - 在应用程序中使用直接 MySql 连接 - C#
- java - 当我没有捕获预期的异常类型时,为什么 IntelliJ 会显示编译错误?
- java - 迭代Java中的二维数组
- sql - SQL - 计算唯一的第一次出现的值
- mysql - 寻找通过 cron 创建数据库的示例