2013-03-14 40 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