Python 名为Django的NoReverseMatch
知道为什么会返回Python 名为Django的NoReverseMatch,python,django,match,django-urls,reverse,Python,Django,Match,Django Urls,Reverse,知道为什么会返回NoReverseMatch错误吗?从一个叫做 URL.py: url(r'^(?P<object_id>\d+)/rate/(?P<score>[\d\-]+)/$', AddRatingFromModel(), { 'app_label': 'appname', 'model': 'Thing', 'field_name': 'rating', }, name='thing_rating'), 您需要为url的参数传入参数(我
NoReverseMatch
错误吗?从一个叫做
URL.py:
url(r'^(?P<object_id>\d+)/rate/(?P<score>[\d\-]+)/$', AddRatingFromModel(), {
'app_label': 'appname',
'model': 'Thing',
'field_name': 'rating',
}, name='thing_rating'),
您需要为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 %}
{%表示物品列表中的物品%}
...
...
{%endfor%}
我想你还需要在url名称周围加引号
下面是关于url标签的更多信息:您是否包含url配置?您是否传递了对象id和分数的有效值?哦,对了。谢谢如果我想用
Thing.id
表示object.id
,你知道怎么做吗?谢谢你的想法!很难说没有查看视图代码,但您可能已经向上下文传递了一个东西。如果它是一个DetailView
,则称为object
,您可以使用object\u id=object.id
。我的视图非常标准。我把它加在上面了。如果你有时间给我指出正确的方向,我将不胜感激!至于这个错误,我不确定。这些参数在我看来并不复杂,但请尝试切换到位置参数:{%url'thing\u rating'thing.id 5%}
。
def index(request):
thing_list = Thing.objects.all()
return render_to_response('index.html',
{'thing_list':thing_list},
context_instance=RequestContext(request))
{% for thing in thing_list %}
...
<div id='vote'><a href='{% url "thing_rating" object_id=thing.id score=5 %}'>Up</a></div>
...
{% endfor %}