path("user//edit/", views.user_edit),
def user_edit(request, nid):
row_obj = models.UserInfo.objects.filter(id=nid).first()
if request.method == "GET":
form = MyForm(instance=row_obj)
return render(request, 'user_edit.html', {"form": form})
form = MyForm(data=request.POST, instance=row_obj)
if form.is_valid():
form.save()
return redirect("/user/list/")
return render(request, 'user_edit.html',{"form": form})
其中row_obj是根据nid找到数据库中对应的那一行数据(对象)。
然后创建MyForm实例对象form时,将其instance配置为row_obj,那么后续form.save()便知道是在更新该行数据,而不是额外新创建一行数据。
且同时传入模板的form还自带了row_obj过去,每个标签都会默认显示原来数据库对应的数据。
同user_add.html,只需要把“添加员工”改为“修改员工”即可。
编辑
path("user//delete/", views.user_delete)
def user_delete(request, nid):
models.UserInfo.objects.filter(id=nid).delete()
return redirect("/user/list/")
删除