【发布时间】:2012-03-04 14:20:34
【问题描述】:
我有三个 url 模式匹配到相同的 url 名称
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' 来获取这样的完整 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.
是因为我将三个 url 与一个 url 名称匹配吗?我认为应该通过将这三种模式与三个不同的 url 名称匹配来解决这个问题。是否有其他方法可以解决此错误
谢谢
【问题讨论】:
-
为什么需要多个同名视图?你试过给他们起不同的名字吗?
-
另外,假设“ccicreport”应该像其他人一样是“report”,您可以按照Making a Regex Django URL Token Optional 的示例将它们合并为一个正则表达式。
-
@perelman 是的,这是一个错字 :),已更新。
标签: python django url-routing