2012-02-13 96 views
1

我有三個URL模式匹配相同的URL名稱Django的網址名稱查找

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. 

這是因爲我將三個url匹配到一個url名稱?我認爲通過將這三種模式匹配到三個不同的url名稱可以解決這個問題。那是另一種方式,我可以解決這個錯誤

感謝

+1

爲什麼你需要有多個同名的視圖?你有沒有嘗試給他​​們不同的名字? – perelman 2012-02-13 05:59:07

+1

此外,假設「ccicreport」應該像其他人一樣「報告」,您可以按照[製作正則表達式Django URL令牌可選]的示例將它們合併爲一個正則表達式(http://stackoverflow.com/q/2325433)。 – perelman 2012-02-13 06:01:46

+0

@perelman是的,這是一個錯字:),更新。 – icn 2012-02-13 06:04:13

回答

1

我認爲這個問題是一個事實,即report.applicationnumber不產生價值:在錯誤消息with arguments '('',)'表明report.applicationnumber的值是空在這種情況下, url標記會嘗試匹配網址列表中不存在的網址格式^report/newreport//$