You need to enable JavaScript to run this app. Django调用val-details视图触发NoReverseMatch反向解析错误求助
优惠活动
大模型
产品
解决方案
定价
更多

Django调用val-details视图触发NoReverseMatch反向解析错误求助

问题原因

你报错的核心原因是模板读取的变量不存在,导致传给路由的id参数为空:

  • 你那个带{% url 'val-details' val.id %}的按钮是写在profile.html里的,而profile视图传给模板的上下文里只有valid(当前用户的Validator对象查询集),根本没有名为val的变量。Django模板读取不存在的变量时会默认返回空字符串,所以反向匹配时传的参数是空值,匹配不上路由要求的数字类型id,就抛出了这个错误。
  • 另外还有两个不影响本次报错但需要修正的问题:
    1. button标签本身不支持href属性,写了也无法实现跳转,要么把按钮套进a标签,要么直接用a标签加btn样式
    2. 你的Validator模型里定义的__int__魔术方法没有实际作用,Django默认调用的是__str__,可以改成对应返回逻辑方便调试

修复步骤

  1. 修正profile.html里的模板代码,先遍历查询集再取单个对象的id:
{% for val in valid %}
<!-- 用a标签套按钮实现跳转 -->
<a href="{% url 'val-details' val.id %}">
  <button class="btn btn-warning">details</button>
</a>
{% endfor %}
  1. (可选)修正模型的魔术方法:
class Validator(models.Model):
    # 原有字段不变
    def __str__(self):
        return self.name or str(self.id)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 07:21:03