Django更新设置表单提交返回404 Page Not Found错误如何解决
错误诱因及修复方案
urls.py语法错误导致配置类路由未注册
你在Trial Balance模块路由的最后一行path('trb_Monthly' , views.trb_Monthly , name='trb_Monthly')末尾漏写了逗号,导致后面Settings模块的所有路由都没有被正确加载,访问相关路径自然返回404。修复方案是在这行末尾补上英文逗号。模板表单action路径配置完全错误
你在viewSettings.html中的表单标签写的是<form method="POST" action="{ url 'settingsHome' settings.pk }">,存在三处错误:
- Django模板url标签的正确语法是
{% url ... %},你漏写了两侧的百分号,导致标签没有被渲染,直接输出了原始字符串作为提交路径 settingsHome对应的路由没有参数,你传入settings.pk参数会导致路径生成失败- 上下文变量名是
setting不是settings,你写的settings.pk根本取不到值
修复方案:要么直接删除action属性(表单默认提交到当前页面地址,符合你当前的逻辑),要么改为正确的路径:action="{% url 'viewSettings' setting.pk %}"
- 路由规范问题
path('settings', views.settingsHome , name='settingsHome')末尾没有加斜杠,如果你关闭了Django的APPEND_SLASH配置,访问该路径也会返回404,建议统一在路径末尾加斜杠改为path('settings/', views.settingsHome , name='settingsHome')
内容的提问来源于stack exchange,提问作者KyleStranger
相关产品推荐
相关产品推荐

