Запрос Django POST возвращает NONE

Итак, я ищу решение уже около недели Мне просто нужны данные из скрытой метки в форме, что не должно быть проблемой, но вместо данных из метки я просто получаю 'NONE'

Шаблон (форма):

{% for Gerecht in Gerechten %}
    <form method="POST">
      {% csrf_token %}
  </section>
  <section class="u-clearfix u-custom-color-2 u-valign-middle u-section-2" id="sec-a9e5">
    <div class="u-clearfix u-gutter-0 u-layout-wrap u-layout-wrap-1">
      <div class="u-layout" style="">
        <div class="u-layout-row" style="">
          <div class="u-align-left u-container-style u-image u-layout-cell u-left-cell u-shading u-size-30 u-size-xs-60 u-image-1" src="" data-image-width="4880" data-image-height="3253" style="  background-image: linear-gradient(0deg, rgba(0,0,0,0.25), rgba(0,0,0,0.25)), url('{% static '/img/{{ Gerecht.afbeelding }}' %}')">
            <div class="u-container-layout u-container-layout-1" src=""></div>
          </div>
          <div class="u-align-left u-container-style u-custom-color-1 u-layout-cell u-right-cell u-size-30 u-size-xs-60 u-layout-cell-2">
            <div class="u-container-layout u-container-layout-2">
              <h2 class="u-text u-text-default u-text-white u-text-1"> {{ Gerecht.naam }}</h2>
              <p class="u-text u-text-default u-text-white u-text-2">Duur: {{ Gerecht.duur }} u              </p>                 
               <input type="submit" value="ga naar gerecht" class="u-active-custom-color-3 u-align-left u-border-1 u-border-active-custom-color-3 u-border-hover-custom-color-3 u-border-white u-btn u-btn-round u-button-style u-hover-custom-color-3 u-none u-radius-12 u-text-active-white u-text-hover-white u-btn-2" name="btnZieRecept">
              <label name="id" style="display: none;" value="{{ Gerecht.id }}">{{ Gerecht.id }}</label>
            </div>
          </div>
        </div>
      </div>
    </div>
  </section>
</form>
    {% endfor %}

Мой views.py:

    if request.POST.get('btnZieRecept'):
        PK =  request.POST.get('id')
        logging.basicConfig(level=logging.NOTSET)
        logging.debug(request.POST.get('id'))
        return redirect('GerechtPreview', PK=PK)

Здесь PK=None и я не знаю почему

 def GerechtPreview(request, PK):
    obj = Gerecht.objects.get(pk=PK)
    ingList=[]
    for f in obj.bijIngridiënten:
        ingList.append(f)
    for f in obj.Hoofdingridiënten:
        ingList.append(f)
    return render(request, 'GerechtPreview.html', {"obj":obj, "ingList":ingList})

Мой urls.py:

  path('Gerechten.html', views.Gerechten, name="Gerechten.html")
  re_path(r'^GerechtPreview.html/(?P<PK>\w+)/$', views.GerechtPreview, name="GerechtPreview"),

У кого-нибудь есть идеи?

  1. Не похоже, что вы используете какие-либо формы Django в своем шаблоне. Если ваша форма основана на модели, я бы передал "ModelForm" в ваш контекст через представление.
  2. Скрытое поле в форме обычно выглядит так:
<input type="hidden" name="csrfmiddlewaretoken" value="HVjtndYO...1DIkUex7">

Вы должны быть в состоянии увидеть пример этого на вашей текущей форме, если вы просмотрите HTML (из-за {% csrf_token %})

Я ни в коем случае не эксперт по HTML; я никогда не видел, чтобы это делалось через тег <label>, но, возможно, вы сможете. Я бы просто рекомендовал попробовать сделать это с помощью <input type="hidden" и дать ему имя и значение, и посмотреть, будет ли это передано в запросе POST.

Вернуться на верх