django - NoReverseMatch at/Django模板渲染

标签 django django-models error-handling django-templates django-urls

我有这个问题,被困了几个小时。

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来迭代对象,因此请使用jedlo.id代替zoznam.id
  <h1><a href="{% url 'hotovo' zoznam.id 
%}" class="hotovo"> 

确保zoznam.id必须是相同的VyberJedla模型对象。

关于django - NoReverseMatch at/Django模板渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58360889/

相关文章:

python - Django 目录在哪里创建?

android - 从 Python-Django 启动 Android 模拟器

python - 正在解决 ValidationError : [u "'' value has an invalid date format. 它必须采用 YYYY-MM-DD 格式。”] 在 Django 1.9.2 中?

error-handling - .execute()命令失败时,失败Gradle TaskAction

php - 如何在 PHP 中获取有用的错误消息?

python - Django admin模型复数模式全局设置,不添加后缀 's'

mysql - Django 中的 ArrayField 在进行迁移时出错

python - 使用 Django 计算和过滤数据库中的对象

python - 如何在 Django 模型上将月份表示为字段

php - 如何在我的开发服务器上启用通知