2

老实说,我还没有掌握 django url。所以我显然不知道如何解决这个错误。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' 的反向操作。

我怎样才能解决这个问题?

4

3 回答 3

1

尝试以下方法:

网址.py

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

模板

{% load url from future %}

<a href="{% url "f4l_menu" id=category.id %}">
于 2013-01-24T19:37:15.490 回答
0

模板中似乎category.id是空的,就像错误消息说的那样。'('',)'调试它。

于 2013-01-24T19:44:21.840 回答
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 %}">
于 2013-01-24T19:39:12.403 回答