在SO上有很多类似的问题,我经历了大部分问题,但仍然无法解决我的问题。
我收到以下错误:
使用参数'()'和关键字参数反转'category_view' 找不到'{'pk':'dynamic-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)),
答案 0 :(得分:1)
我怀疑您忘记将应用中的urls.py
包含在项目的urls.py
中。
更新:如果您使用了include的namespace
参数,则必须在reverse()
调用中指定此命名空间:
def get_absolute_url(self):
return reverse('blog:category_view', kwargs={'pk': self.slug})