【问题标题】:NoReverseMatch at / Django template renderingNoReverseMatch at / Django 模板渲染
【发布时间】:2020-02-10 03:22:22
【问题描述】:

我遇到了这个问题,卡了几个小时。

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>

【问题讨论】:

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


    【解决方案1】:

    如果您尝试重定向到空路径,则需要更改此设置

    来自

    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 模型对象相同。

    【讨论】:

    • 你能分享你的完整模板吗
    • @PohodePES 请在您的问题中附上这个
    • @PohodePES 请检查答案
    猜你喜欢
    • 2020-06-08
    • 2020-11-18
    • 2020-08-04
    • 1970-01-01
    • 1970-01-01
    • 2017-01-07
    • 2022-07-22
    • 2020-06-01
    • 2017-08-19
    相关资源
    最近更新 更多