NoReverseMatch命名为urls Django

时间:2012-10-27 00:12:13

标签: python django match django-urls reverse

为什么会出现NoReverseMatch错误的任何想法?来自名为djano-ratingsupdown分叉。

urls.py:

url(r'^(?P<object_id>\d+)/rate/(?P<score>[\d\-]+)/$', AddRatingFromModel(), {
    'app_label': 'appname',
    'model': 'Thing',
    'field_name': 'rating',
}, name='thing_rating'),

模板:

<div id='vote'><a href='{% url thing_rating %}'>Up</a></div>

感谢您的任何想法!


编辑:为清晰起见添加了视图

def index(request):
    thing_list = Thing.objects.all()
    return render_to_response('index.html',
                         {'thing_list':thing_list},
                         context_instance=RequestContext(request))

1 个答案:

答案 0 :(得分:2)

你需要为url的参数传入参数(我在这里使用关键字args,但位置也可以)。

在列表视图中,您可能正在迭代您的项目,所以这样的工作:

{% for thing in thing_list %}
    ...
    <div id='vote'><a href='{% url "thing_rating" object_id=thing.id score=5 %}'>Up</a></div>
    ...
{% endfor %}

我认为你还需要引用网址名称。

以下是关于网址标记的更多内容:https://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs#url