Django:获得NoReverseMatch /错误

时间:2015-05-15 11:01:15

标签: python django

在SO上有很多类似的问题,我经历了大部分问题,但仍然无法解决我的问题。

我收到以下错误:

  

使用参数'()'和关键字参数反转'category_view'   找不到'{'pk':'dy​​namic-programming'}'。尝试过0种模式:[]   NoReverseMatch at / articles /

以下是来自urls.py文件的设置:

url(r'^category/(?P<pk>[\w-]+)/$', views.CategoryDetailView.as_view(), name='category_view')

而且,这是我对模型中get_absolute_url()的定义;

def get_absolute_url(self):
return reverse('category_view', kwargs={'pk': self.slug})

我收到此错误的来电者来自index.html:

<li><a href="{{ category.get_absolute_url }}">{{ category.name }}</a></li>

我确信我错过了一些非常明显的东西,但过去几个小时都无法弄明白。 :(

来自项目的内容urls.py:

url(r'^articles/$', include('blog.urls', namespace="blog")),
    url(r'^admin/', include(admin.site.urls)),

1 个答案:

答案 0 :(得分:1)

我怀疑您忘记将应用中的urls.py包含在项目的urls.py中。

更新:如果您使用了include的namespace参数,则必须在reverse()调用中指定此命名空间:

def get_absolute_url(self):
    return reverse('blog:category_view', kwargs={'pk': self.slug})