Django URL 名称查找

1 投票
1 回答
1438 浏览
提问于 2025-04-17 12:56

我有三个网址模式都匹配到同一个网址名称。

url(r'^report/newreport/(?P<number>\w+)/$', 'report.views.newreport',name='report_newreport'),  
url(r'^report/newreport/(?P<number>\w+)/(?P<edit>\w+)/$', 'report.views.newreport',name='report_newreport'),        
url(r'^report/newreport/$', 'report.views.newreport',name='report_newreport'),

当我尝试用'url'来获取完整的网址时,像这样:

<td><a href='{% url report_newreport report.applicationnumber %} ' target='_blank' >{{task.applicationnumber}}</a> <br/>

我遇到了一个错误。

Caught NoReverseMatch while rendering: Reverse for 'report_newreport' with arguments '('',)' and keyword arguments '{}' not found.

这是不是因为我把三个网址都匹配到一个网址名称上了?我觉得应该通过把这三个模式匹配到三个不同的网址名称来解决这个问题。还有其他方法可以修复这个错误吗?

谢谢。

1 个回答

1

我觉得问题出在 report.applicationnumber 没有生成值上:错误信息中的 with arguments '('',)' 表示 report.applicationnumber 的值是空的。在这种情况下,url 标签试图匹配 URL 模式 ^report/newreport//$,但在你的 URL 列表中并不存在这个模式。

撰写回答