处理NoReverse错误

时间:2013-01-24 19:31:22

标签: django django-urls

老实说,我还没有掌握django网址。所以我显然不知道如何解决这个错误。在马views.py我有:

def get_category(request,id):
    categories = Category.objects.get(pk=id).prefetch_related('item')
    context={
        'categories':categories,
    }
    return render_to_response('category.html',context,context_instance=RequestContext(request))

在我的urls.py

url(r'^menu/(\d+)$',get_category, name="f4l_menu"),

并在我的模板中

<a href="{% url f4l_menu category.id %}">

这是一个错误,

  

使用参数'('',)'和关键字参数'{}'找不到'f4l_menu'的反转。

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

尝试以下内容:

urls.py

url(r'^menu/(?P<id>\d+)$',get_category, name="f4l_menu"),

模板

{% load url from future %}

<a href="{% url "f4l_menu" id=category.id %}">

答案 1 :(得分:0)

您在视图和模板中的上下文之间混淆了名称。在您使用category的模板中,您在分配categories的视图中。修复视图,它最终会像这样:

查看:

def get_category(request,id):
    category = Category.objects.get(pk=id).prefetch_related('item') # See? Here.
    context={
        'category': category,
    }
    return render_to_response('category.html', context, context_instance=RequestContext(request))

模板:

<a href="{% url f4l_menu category.id %}">

答案 2 :(得分:0)

模板中似乎category.id为空'('',)',就像错误消息所示。调试它。