2013-03-14 64 views
0

有人可以解釋這個錯誤意味着什麼以及如何解決?錯誤NoReverseMatch上的網址

這是錯誤消息:

* * NoReverseMatch在/聯繫人/組/新/ 逆向關於 '' group_list中 '' 與參數 '()' 和關鍵字參數 '{}' 未找到。 **

的urls.py

urlpatterns = patterns('', 


      url(r'^$', 'contacts.views.home', name="group_list"), 

      (r'^group/new/$', 'contacts.views.group', {}, 'group_new'), 
      (r'^group/edit/(?P<id>\d+)/$', 'contacts.views.group', {}, 'group_edit'), 



) 

的template.py

<li> 
    <a href="{% url 'group_list' %}"> 
     <i class="icon-group"></i> 
     <span>Contacts</span> 
</a> 
</li> 
+0

擺脫模板中的'''? – dmg 2013-03-14 11:58:21

回答

2

您可以通過利用prefix論點清理你的模式了一下:

urlpatterns = patterns('contacts.views', 
    url(r'^group/edit/(?P<id>\d+)/$', 'group', name='group_edit'), 
    url(r'^group/new/$', 'group', name='group_new'), 
    url(r'^$', 'home', name="group_list"), 
) 

,當你使用URL模板標籤,只需要提供的,而不是在移交模式的名稱,字符串文字的功能:

{% url group_list %} 

由於圖案以順序匹配的,我建議把最具體的模式第一,否則你可能會得到一些意外的行爲。

+0

如果我沒有將它作爲一個字符串使用來獲得1.5的錯誤,但是當我再次嘗試時,我沒有,我很困惑。何時應該使用模式名稱與字符串。 – Prometheus 2013-03-14 12:04:28

+0

好吧,似乎URL語法在1.5中略有變化(我還沒有升級,因爲我的大部分項目都利用Django-CMS)。它看起來好像你*應該*傳遞模式的名字作爲1.5 – Brandon 2013-03-14 12:10:06

+0

中的一個字符串,但我正在運行1.5並且你的代碼沒有錯誤(我確信它使用這種方式) – Prometheus 2013-03-14 12:17:37