用户表的基本操作2
- 编辑用户按钮
- 删除按钮
- 入职日期——不显示时分,只显示年月日——使用DataField函数不使用DateTimeField
- 修改models记得重新执行命令,更新数据库结构
- 修改前
- 修改后
编辑用户按钮
- 点击编辑,跳转到编辑页面(将编辑的ID携带过去)
代码如下:
urlpatterns = [
#用户编辑
path('user/<int:nid>/edit/',views.user_edit),
]
- 编辑页面(默认数据,根据id获取并设置到页面中)
(1)提交
(2)错误提示
(3)数据校验
(4)在数据库更新
#编辑用户
def user_edit(request,nid):
# 根据ID去数据库获取要编辑的那一行数据
row_object = models.UseInfo.objects.filter(id=nid).first()
if request.method=='GET':
# #根据ID去数据库获取要编辑的那一行数据
# row_object=models.UseInfo.objects.filter(id=nid).first()
# 将数据显示出来
form=UserModelForm(instance=row_object)
return render(request,'user_edit.html',{'form':form})
else:
# #拿到对象
# row_object=models.UseInfo.objects.filter(id=nid).first()
#不新增数据,将用户提交的数据新修改到对应的数据项
#instance传递用户提交的数据
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})
- HTML页面
{% extends 'layout.html' %}
{% block content %}
<div class="container">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title"> 编辑用户 </h3>
</div>
<div class="panel-body">
<!-- novalidate关掉页面校验 -->
<form method="post" novalidate>
<!-- 隐含参数-->
{% csrf_token %}
{% for field in form %}
<div class="form-group">
<label >{{ field.label }}</label>
{{ field }}
<span style="color:red;">{{field.errors.0}}</span>
<!-- <input type="text" class="form-control" placeholder="标题" name="user">-->
</div>
{% endfor %}
<button type="submit" class="btn btn-primary">提 交</button>
</form>
</div>
</div>
</div>
{% endblock %}
- 编辑演示
删除按钮
- 添加路径与函数的关系
urlpatterns = [
#用户删除
path('user/<int:nid>/delete/', views.user_delete),
]
#用户删除函数
def user_delete(request,nid):
models.UseInfo.objects.filter(id=nid).delete()
return redirect('/user/list/')
- 删除演示
入职日期——不显示时分,只显示年月日——使用DataField函数不使用DateTimeField
修改models记得重新执行命令,更新数据库结构
python manage.py makemigrations
python manage.py migrate