我有一个名为“FormDB”的数据库表。 我已经编写了一个用于 CURD 操作的程序。对于每行数据库数据,都有两个按钮“EDIT”和“DELETE”。 当我在
HTML模板中输入
<form action = "" method = "POST">
时,编辑按钮即可正常工作。但是当我重定向到显示所有数据库数据的页面时,它会创建一行新数据,而不是更新现有值。
view.py
def EditData(request, id):
a = FormDB.objects.get(id=id)
nameupdate = a.name
form = DjangoForm(request.POST)
if request.method == "POST" and form.is_valid():
newname = form.cleaned_data['name']
b = FormDB.objects.get(id=id)
b.name = newname
b.save()
return render(request, "editform.html", {'nameupdate' : nameupdate})
editform.html
<body>
<h1>EDIT PAGE</h1>
<form action = "" method = "POST">
{% csrf_token %}
{% if nameupdate %}
<label>Enter new name: </label>
<input type="text" name = "name" placeholder = {{ nameupdate }} REQUIRED>
<input type="submit" value = "Submit Changes" ><br>
{% endif %}
</form>
因此,当我单击“提交更改”时,它应该重定向到所有数据库数据显示更新值的页面。
您在 nameupdate 中获取了旧数据,您需要更新它
def EditData(request, id):
a = FormDB.objects.get(id=id)
nameupdate = a.name
form = DjangoForm(request.POST)
if request.method == "POST" and form.is_valid():
newname = form.cleaned_data['name']
b = FormDB.objects.get(id=id)
b.name = newname
b.save()
nameupdate = b.name
return render(request, "editform.html", {'nameupdate' : newname})