You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django编辑/删除功能出现404错误,请求路径不匹配问题求助

问题分析与解决

从你提供的404错误信息和URL配置来看,问题很明确:
你的编辑、删除功能的URL规则要求必须传入整数类型的id参数,但你发起的请求是http://127.0.0.1:8000/edit/,没有携带任何id值,导致Django找不到匹配的URL规则,返回404。

具体原因

看你的urls.py配置:

path("edit/<int:id>/", views.edit),
path("delete/<int:id>/", views.delete),

这里的<int:id>是Django的URL路径转换器,它要求URL必须是edit/[数字]/或delete/[数字]/的格式(比如edit/1/、delete/3/),才会匹配到对应的视图函数。而你当前请求的edit/缺少了必要的id部分,自然匹配失败。

解决方法

  1. 修正前端请求链接:
    检查页面中触发编辑/删除功能的链接,确保每个链接都带上了对应数据的id。比如在Django模板中,正确的写法可以是:
    • 使用URL反向解析(推荐):先给URL规则命名
      # urls.py中修改规则,添加name参数
      path("edit/<int:id>/", views.edit, name="edit"),
      path("delete/<int:id>/", views.delete, name="delete"),
      
      模板里写:
      <a href="{% url 'edit' item.id %}">编辑</a>
      <a href="{% url 'delete' item.id %}">删除</a>
      
    • 或者直接拼接路径:
      <a href="/edit/{{ item.id }}/">编辑</a>
      <a href="/delete/{{ item.id }}/">删除</a>
      
  2. 如果确实需要无id的编辑页面(不推荐,因为已有create功能):
    可以额外添加一条不带参数的URL规则,但要注意放在带参数规则的后面,避免覆盖:
    path("edit/<int:id>/", views.edit),
    path("edit/", views.edit),  # 新增无参数规则
    

内容的提问来源于stack exchange,提问作者user14556999

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 17:20:44