主要功能:
一、点击编辑跳转到编辑页面(将页面行的ID携带过去)
二、编辑页面(默认数据,根据ID获取并设置到页面中)
三、提交时:
- 错误提示
- 数据校验
- 在数据库中更新
models.UserInfo.filter(id = 4).update(....)
使用ModelForm之后:
urls
path('user/<int:nid>/edit/', views.user_edit),
views : 注意要传入nid
def user_edit(request, nid):
"""编辑用户"""
return render(request, 'user_edit.html')
user_edit.html
{% extends 'layout.html' %}
{% block content %}
<div class="container">
编辑用户页面
</div>
{% endblock %}
user_list.html 的编辑标签
<a class="btn btn-primary btn-xs" href="/user/{{ obj.id }}/edit/">编辑</a>
实现编辑
def user_edit(request, nid):
"""编辑用户"""
if request.method == "GET":
# 根据ID去数据库获取要编辑的哪一行的数据
row_object = models.UserInfo.objects.filter(id=nid).first()
# class 里定义的UserModelForm
form = UserModelForm(instance=row_object) # 添加默认值 instance
return render(request, 'user_edit.html', {'form': form}) # form 将input框添加进来
row_object = models.UserInfo.objects.filter(id=nid).first() # 是修改,而不是重新创建并提交一行
form = UserModelForm(data=request.POST, instance=row_object)
if form.is_valid():
form.save()
return redirect('/user/list/')
return render(request, 'user_edit.html', {'form': form}) # 若出现错误,提交返回到原来的表单
删除页面:
DataField : 只有年月日 没有时分秒
根据nid删除
def user_delete(request, nid):
models.UserInfo.objects.filter(id=nid).delete()
return redirect('/user/list/')