我有这个问题,被困了几个小时。
NoReverseMatch位于/ 找不到带有参数“('',)”的“ hotovo”。尝试了1种模式:['hotovo /(?P [^ /] +)$']。
网址:
urlpatterns = [
path('', views.index, name='index'),
path('hotovo/<jedlo_id>', views.hotovo, name='hotovo')
]
观看次数:
def hotovo(request, jedlo_id):
jedlo = VyberJedla.objects.get(pk=jedlo_id)
jedlo.vybrane = True
jedlo.save()
return redirect('')
模板:
<body>
<h1>Veber si z jedal:</h1>
{% block content%}
<div class="wrapper"></div>
{% for zoznam in zoznam%}
{%if zoznam.vybrane%}
<h1><a href="{% url 'hotovo' jedlo.id%}" class="hotovo"> {{zoznam.nazov_jedla}}</a><input type="checkbox" name="cekbox"></h1>
{%else%}
<h1><a href="{% url 'hotovo' jedlo.id%}" class="este_nie"> {{zoznam.nazov_jedla}}</a><input type="checkbox" name="cekbox"></h1>
{%endif%}
{%endfor%}
</div>
{%endblock%}
</body>
答案 0 :(得分:0)
如果您尝试重定向到空路径,则需要更改
来自
return redirect (' ')
收件人
return redirect ('/')
也 您需要在模板中渲染并传递jedelo对象,而我在这里没有看到它。
def hotovo(request, jedlo_id):
jedlo=
VyberJedla.objects.get(pk=jedlo_id)
jedlo.vybrane = True
jedlo.save()
return render(request,'your_template',{'jedlo':jedlo})
编辑:在模板中,您可以使用循环变量zoznam
来迭代对象,因此可以使用jedlo.id
代替zoznam.id
<h1><a href="{% url 'hotovo' zoznam.id
%}" class="hotovo">
确保zoznam.id
必须是相同的VyberJedla
模型对象。