我有一个表,上面有一个数据值列表。其中一列包含指向另一页的链接。有时可能有一个链接,有时两个,有时n。
当只有一个链接时,代码按预期工作,模式匹配并转到预期的页面。只要有一个以上的链接,它就会失败。它仍然会正确地构建URL,我可以在浏览器的搜索栏中看到完整的正确URL,但我得到了一个NoReverseMatch错误。
错误代码:
Exception Type: NoReverseMatch
Exception Value:
Reverse for 'thelink' with arguments '('64f75fake8012b456073fake', '')' not found. 1 pattern(s) tried: ['thelink/(?P<table>[^/]+)/(?P<row>[^/]+)\\Z']
urls.py
path('thelink/<str:table>/<str:row>', views.thelink, name='thelink'),
html在哪里工作和休息:
<td>
{% for table, row in data %}
<a href="{% url 'thelink' table row %}" type="button" class="badge badge-info">
link
</a>
{% endfor %}
</td>
从html代码生成的HTML:
工作:
<a href="/thelink/64f75fake8012b456073fake/64f75be82fakeb456073fake" type="button" class="badge badge-info">link</a>
不工作:
<a href="/thelink/64f75fake8012b456073fake/64f75be82fakeb45603fake1" type="button" class="badge badge-info">link</a>
<a href="/thelink/64f75fake8012b456073fake/64f75be82fakeb45603fake2" type="button" class="badge badge-info">link</a>
<a href="/thelink/64f75fake8012b456073fake/64f75be82fakeb45603fake3" type="button" class="badge badge-info">link</a>
1条答案
按热度按时间n6lpvg4x1#
根据您描述的错误,似乎第二个参数
row
不存在。这意味着数据中有None
或''
(缺失)值。本质上,它在尝试渲染时会中断:所以,我想你可以在尝试反向解析不存在的东西之前只需要
if check
:另一种方式
由于您没有共享任何模型或视图,因此我不知道您如何存储或访问这些数据。无论如何,这对您为
template
提供的代码仍然没有多大意义。因为每个
data value
都有一个links
的嵌套列表(可以是空的,也可以是多个值)。如果我没理解错的话。下面是一种通过使用框架relations来实现这一点的优雅方法:
models.py
views.py
index.html