django模板渲染期间出错

时间:2015-11-10 12:18:23

标签: django django-models django-templates django-views

我的models.py文件中的一个类具有此功能

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

这里有views.py函数:

def index(request):
    cardSets = CardSet.objects.all()
    return render(request, 'catalog/index.html', {'cardsets': cardSets})

来自index.html的代码:

{% for cardset in cardsets %}
    <a href="{{ cardset.get_absolute_url }}">
     ...

我的urls.py文件如下所示:

urlpatterns = [url(r'^$', views.index, name='index'),
               url(r'^cardset/(?P<cardset_slug>[-\w]+)/$', views.show_cardset, name='show_cardset'),]

现在,当我尝试访问http://127.0.0.1:8000/时,我收到以下错误:

  

在模板中   /home/dennis/PycharmProjects/eshop/templates/catalog/index.html,错误   在第7行

     

使用参数'()'和关键字参数反转'index'   '{'slug':u'first-one'}'找不到。尝试了1种模式:['$']

第7行是<a href="{{ cardset.get_absolute_url }}">

你能告诉我出了什么问题吗?为什么?

1 个答案:

答案 0 :(得分:1)

更改获取绝对网址的方法;

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