十五、Django之编辑员工和删除员工

编辑员工

urls.py

    path("user//edit/", views.user_edit),

views.py

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_edit.html

同user_add.html,只需要把“添加员工”改为“修改员工”即可。

修改user_list.html

编辑

删除员工

urls.py

    path("user//delete/", views.user_delete)

views.py

def user_delete(request, nid):
    models.UserInfo.objects.filter(id=nid).delete()
    return redirect("/user/list/")

修改user_list.html

删除

你可能感兴趣的:(Django入门,django,python,后端,前端,前端框架)