我有网址:
url(r'^tournament/(?P<tournament_id>\d+)/tour/$', chess.views.first_tour, name = 'first_tour'),
url(r'^tournament/(?P<tournament_id>\d+)/tour/match/(?P<pk>\d+)/$', chess.views.edit_match, name = 'edit_match'),
查看:
def first_tour(request, tournament_id):
...
matches = []
for item in items:
match = Match.objects.get(...)
matches.append(match)
return render(request, 'first_tour.html', {'matches':matches})
def edit_match(request, tournament_id, match_id ):
pass
我有一个匹配循环和每个循环的模板:
<a href="{% url 'edit_match' match.pk %}">Enter results</a>
为什么会出现错误:使用参数'(5L,)'和关键字参数'{}'找不到'edit_match'。出现?
答案 0 :(得分:4)
您需要在网址中指定所有值:
{% url 'edit_match' tournament_id=... pk=match.pk %}
您目前只为pk
指定一个值,这意味着Django无法找到匹配的edit_match
网址(即,有一个未命名的参数)。您的edit_match
有两个命名参数。