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

如何向Django URL传递动态值以避免NoReverseMatch错误

Django酒店预订应用NoReverseMatch错误修复

错误详情

NoReverseMatch at /search_results/
Reverse for 'more_info_page' with keyword arguments '{'room_type': 'double', 'check_in_date': '2023-12-07', 'checkout_date': '2023-12-09', 'guests': '1'}' not found. 1 pattern(s) tried: ['more_info_page/(?P<room_type>[^/]+)/(?P<check_in_date>[^/]+)/(?P<check_out_date>[^/]+)/(?P<guests>[^/]+)/\\Z']

问题根源

URL模式定义的参数名是check_out_date(包含下划线),但模板中传递的关键字参数名是checkout_date(缺少下划线),两者不匹配导致反向解析失败。

修复步骤

1. 修正模板中的参数名

将HTML链接代码里的checkout_date参数名改为check_out_date,与URL模式中的参数名保持一致:

<a href="{% url 'more_info_page' room_type=room_type check_in_date=checkin_date check_out_date=checkout_date guests=guests %}" class="btn btn-primary">More Info</a>

2. 确认上下文变量类型(可选验证)

检查视图传递到模板的变量均符合URL的字符串类型要求:

  • checkin_date和checkout_date是从POST请求直接获取的字符串,无需额外转换
  • guests是POST获取的字符串
  • room_type从available_room_types中获取,为字符串类型

这些变量类型与URL模式中<str:xxx>的定义完全匹配,无需调整。

验证修复

修改后重新运行应用,点击"More Info"链接即可正常跳转到more_info_page视图,反向解析错误将被解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 16:10:27