【发布时间】:2021-10-05 09:48:49
【问题描述】:
我在更新视图上收到 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-更新定义
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>
【问题讨论】:
-
这是一个简单的拼写错误,在视图中您查找
baslangiczamani,但在模板中您使用dbaslangiczamani作为输入名称(开头多一个“d”) -
我多么愚蠢,非常感谢你,问题已解决@IainShelvington