Django项目访问/members/update路径报错,请求协助排查问题
Django 更新页面访问错误修复方案
项目配置说明
项目使用myworld.urls中定义的URLconf,目录结构参照用户提供的截图。
相关文件代码
index.html
<h1>Members</h1> <table border="1"> {% for x in mymembers %} <tr> <td><a href="update/{{x.id}}" style="decoration: none">{{x.id}}</a></td> <td>{{ x.f_name }}</td> <td>{{ x.l_name }}</td> <td><a href="delete/{{x.id}}">Delete</a></td> </tr> {% endfor %} </table> <p> <a href="add/" style="decoration: none">Add members</a> </p>
update.html
<h1>Update member</h1> <form action="updaterecord/{{mymember.id}}" method="post"> {% csrf_token %} First Name:<br /> <input name="first" value="{{mymember.f_name}}" /> <br /><br /> Last Name:<br /> <input name="last" value="{{members.l_name}}" /> <br /><br /> <input type="submit" value="Submit" /> </form>
members/urls.py
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), path('add/', views.add, name='add'), path('add/addrecord/', views.addrecord, name='addrecord'), path('delete/<int:id>', views.delete, name='delete'), path('update/<int:id', views.update, name='update'), path('update/updaterecord/<int:id>', views.updaterecord, name='updaterecord'), ]
myworld/urls.py
from django.contrib import admin from django.urls import include,path urlpatterns = [ path('members/', include('members.urls')), path('admin/', admin.site.urls), ]
问题与修复步骤
访问http://127.0.0.1:8000/members/update时出现错误,核心问题及修复如下:
URL路由语法错误
members/urls.py中update路径的参数定义缺少闭合符号,修改为:path('update/<int:id>/', views.update, name='update'),(添加末尾斜杠符合Django URL规范,避免路由匹配异常)
模板变量名错误
update.html中姓氏输入框的变量名写错,将{{members.l_name}}改为{{mymember.l_name}},与视图传递的变量名保持一致。访问路径不符合逻辑
update视图需要接收会员ID参数才能获取对应数据,不能直接访问/members/update。正常流程应从index页面点击会员ID链接(如/members/update/1)进入更新页面,确保URL携带正确的ID参数。
内容的提问来源于stack exchange,提问作者IMARYA
相关产品推荐
相关产品推荐

