Django - MultiValueDictKeyError request.POST

Я получаю MultiValueDictKeyError на моем представлении обновления, когда я добавляю, я могу успешно добавить, но когда я хочу обновить, я получаю эту ошибку. Я использовал те же коды, продублировав их 4 раза, но на этот раз я не смог понять, почему у меня возникает ошибка.

models.py;

class problemduyuru(models.Model):
    olusturulmatarihi = models.TextField(max_length=100, null=True)
    duyurutipi = models.TextField(max_length=100, null=True)
    incidentno = models.TextField(max_length=100, null=True)
    baslangiczamani = models.TextField(max_length=100, null=True)
    aciklama = models.TextField(max_length=100, null=True) 

views.py- update def

def problemduyurusuupdate(request, id):
    problemmember = problemduyuru.objects.get(id=id)
    problemmember.duyurutipi = request.POST['duyurutipi']
    problemmember.incidentno = request.POST['incidentno']
    problemmember.baslangiczamani = request.POST['baslangiczamani']
    problemmember.aciklama = request.POST['aciklama']
    problemmember.olusturulmatarihi = request.POST['olusturulmatarihi']
    problemmember.save()
    messages.success(request, 'Alarmlar was updated successfully!')
    return redirect('/problemduyurusu')

html;

<form class="form-horizontal" action="problemduyurusuupdate/{{ problemmembers.id }}" method="POST">
    {% csrf_token %}
    <div class="bd-callout bd-callout-danger">
      <div class="bd-calloutic bd-callout-dangeric ">
      <div class="dangericon"></div>
    <h4 id="asynchronous-methods-and-transitions" style="color: #e70800;"><b>Technology Announcements</b></h4>
    <h7 id="asynchronous-methods-and-transitions" style="color:red; font-weight: 400; ">Problem Duyurusu</h7></div>
    
<div class="input-group mb-3">
  <div class="input-group-prepend">
    <span class="input-group-duyuru" id="inputGroup-sizing-default" style="font-weight: 500;">Duyuru Tipi:</span>
  </div>
  <input type="text" class="form-control" value="{{ problemmembers.duyurutipi }}" name="dduyurutipi" id="dduyurutipi" aria-label="Default" aria-describedby="inputGroup-sizing-default">
</div>
<div class="input-group mb-3">
  <div class="input-group-prepend">
    <span class="input-group-duyuru" id="inputGroup-sizing-default" style="font-weight: 500;">Incident No:</span>
  </div>
  <input type="text" class="form-control" value="{{ problemmembers.incidentno }}" name="dincidentno" id="dincidentno" aria-label="Default" aria-describedby="inputGroup-sizing-default">
</div>
<div class="input-group mb-3">
  <div class="input-group-prepend">
    <span class="input-group-duyuru" id="inputGroup-sizing-default" style="font-weight: 500;">Başlangıç Zamanı:</span>
  </div>
  <input type="text" class="form-control" value="{{ problemmembers.baslangiczamani }}" name="dbaslangiczamani" id="dbaslangiczamani" aria-label="Default" aria-describedby="inputGroup-sizing-default">
</div>
<div class="input-group mb-3">
  <div class="input-group-prepend">
    <span class="input-group-duyuru" id="inputGroup-sizing-default" style="font-weight: 500;">Oluşturma Tarihi:</span>
  </div>
  <input type="text" class="form-control" value="{{ problemmembers.olusturulmatarihi }}" name="dolusturulmatarihi" id="dolusturulmatarihi" aria-label="Default" aria-describedby="inputGroup-sizing-default">
</div>
<div class="input-group mb-3">
  <div class="input-group-prepend">
    <span class="input-group-duyuru" id="inputGroup-sizing-default" style="font-weight: 500;">Açıklama:</span>
  </div>
  <input type="text" class="form-control" value="{{ problemmembers.aciklama }}" name="daciklama" id="daciklama" aria-label="Default" aria-describedby="inputGroup-sizing-default">
</div>
    <br>
  </div>

Попробуйте использовать MultiValueDict's get это поможет предотвратить любое умолчание, если оно не существует. Поэтому замените request.POST('your value') на request.POST.get('your value'), False. Общим правилом является dict.get(<key>, <default>). Один пример в вашем коде будет выглядеть так:

problemmember.duyurutipi = request.POST.get('duyurutipi', False)

Сделайте это и для другого значения.

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