Django表单action用{% url %}报错:找不到'result2'视图或路由
问题解决步骤
1. 修正URL路径拼写错误
你的myapp/urls.py里把result2拼写成了reuslt2(字母顺序错误),导致Django找不到对应的路由规则。修改这一行:
# 原错误代码 path('reuslt2', views.result2), # 修改后 path('result2', views.result2),
2. 加上应用命名空间
因为你在myapp/urls.py里设置了app_name = 'myapp',Django的URL反向解析必须带上应用命名空间才能匹配到正确的路由。把模板里的表单action修改为:
<form action="{% url 'myapp:result2' %}" method="POST"> {% csrf_token %} <!-- 必须添加CSRF令牌,否则POST请求会被Django拦截 --> <!-- 账号密码输入框 --> <input type="text" name="username" placeholder="账号"> <input type="password" name="password" placeholder="密码"> <button type="submit">提交</button> </form>
3. 完善result2视图的POST处理逻辑
目前你的result2视图仅渲染模板,若要获取提交的账号密码,需要补充POST请求处理逻辑:
def result2(request): if request.method == 'POST': username = request.POST.get('username') password = request.POST.get('password') # 此处可添加账号密码验证逻辑(比如与数据库用户信息比对) return HttpResponse(f"提交的账号:{username},密码:{password}") return render(request, 'temp.html')
内容的提问来源于stack exchange,提问作者Cireal
相关产品推荐
相关产品推荐

