NoReverseMatch в / Django рендеринг шаблона - PullRequest
0 голосов
/ 13 октября 2019

У меня есть эта проблема, и я застрял на несколько часов.

NoReverseMatch at / Reverse для 'hotovo' с аргументами '(' ',)' не найден. Попробован 1 шаблон (ов): ['hotovo / (? P [^ /] +) $'].

urls:

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>

1 Ответ

0 голосов
/ 13 октября 2019

Если вы пытаетесь перенаправить на пустой путь, вам нужно изменить это

с

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})

EDIT: В вашем шаблоне вы повторяете объекты с переменной цикла zoznam, поэтому вместо jedlo.id используйте zoznam.id

  <h1><a href="{% url 'hotovo' zoznam.id 
%}" class="hotovo"> 

Убедитесь, что zoznam.id должен быть тем же VyberJedla объектом модели.

...