NoReverseMatch at / Django 模板渲染
NoReverseMatch at / Django template rendering
我遇到了这个问题,卡了几个小时。
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>
如果您尝试重定向到一个空路径,您需要更改此
来自
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
迭代对象,因此使用 zoznam.id
而不是 jedlo.id
<h1><a href="{% url 'hotovo' zoznam.id
%}" class="hotovo">
确保 zoznam.id
必须是相同的 VyberJedla
模型对象。
我遇到了这个问题,卡了几个小时。
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>
如果您尝试重定向到一个空路径,您需要更改此
来自
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
迭代对象,因此使用 zoznam.id
jedlo.id
<h1><a href="{% url 'hotovo' zoznam.id
%}" class="hotovo">
确保 zoznam.id
必须是相同的 VyberJedla
模型对象。