115 lines
3.9 KiB
Python
115 lines
3.9 KiB
Python
|
"""
|
|||
|
用户管理视图函数
|
|||
|
功能:实现用户的增删改查
|
|||
|
"""
|
|||
|
from django.shortcuts import render, redirect
|
|||
|
from app.models import Department, UserInfo, PrettyNumber # 数据表类
|
|||
|
|
|||
|
from app.utils.form import UserModelForm # 表单ModelForm类
|
|||
|
|
|||
|
from app.utils.pagination import Pagination # 导入分页导航条
|
|||
|
|
|||
|
|
|||
|
def user_list(request):
|
|||
|
"""
|
|||
|
用户列表
|
|||
|
"""
|
|||
|
queryset = UserInfo.objects.all()
|
|||
|
|
|||
|
page_object = Pagination(request, queryset, PAGE_SIZE=10) # 实例化分页导航条类,每页显示10条记录
|
|||
|
page_queryset = page_object.page_queryset # 获得分完页的数据结果
|
|||
|
|
|||
|
# 生成分页导航条
|
|||
|
page_nav = page_object.html()
|
|||
|
context = {
|
|||
|
'queryset': page_queryset, # 分完页的数据结果
|
|||
|
'page_nav': page_nav # 生成的页码导航条
|
|||
|
}
|
|||
|
return render(request, 'user_list.html', context)
|
|||
|
|
|||
|
|
|||
|
def user_add(request):
|
|||
|
"""
|
|||
|
添加用户 (原始实现方式)
|
|||
|
缺点:
|
|||
|
1.要重复前端form表单
|
|||
|
2.用户提交数据未校验
|
|||
|
3.前端输入错误没有提示
|
|||
|
4.关联的数据要手动获取,前端要循环渲染
|
|||
|
"""
|
|||
|
if request.method == 'GET':
|
|||
|
content = {
|
|||
|
'gender': UserInfo.gender_choices,
|
|||
|
'depart': Department.objects.all()
|
|||
|
}
|
|||
|
|
|||
|
return render(request, 'user_add.html', content)
|
|||
|
|
|||
|
name = request.POST.get('name')
|
|||
|
password = request.POST.get('password')
|
|||
|
age = request.POST.get('age')
|
|||
|
account = request.POST.get('account')
|
|||
|
create_time = request.POST.get('create_time')
|
|||
|
depart_id = request.POST.get('depart')
|
|||
|
gender = request.POST.get('gender')
|
|||
|
|
|||
|
UserInfo.objects.create(name=name, password=password, age=age,
|
|||
|
account=account, create_time=create_time,
|
|||
|
depart_id=depart_id, gender=gender)
|
|||
|
return redirect('/user/list')
|
|||
|
|
|||
|
|
|||
|
def user_add_modelform(request):
|
|||
|
"""
|
|||
|
添加用户(通过Django ModelForm组件实现 最简便)
|
|||
|
"""
|
|||
|
if request.method == 'GET':
|
|||
|
form = UserModelForm() # 实例化类
|
|||
|
return render(request, 'user_add_modelform.html', {'form': form})
|
|||
|
|
|||
|
# POST请求
|
|||
|
form = UserModelForm(data=request.POST) # 拿到所有提交过来的数据
|
|||
|
if form.is_valid(): # 数据校验
|
|||
|
|
|||
|
# 如果你想对数据表中的字段另外再传递值来保存,就用
|
|||
|
# form.instance.字段名 = '值'
|
|||
|
form.instance.password = '0000' # 默认密码是0000
|
|||
|
|
|||
|
form.save() # 向 model = UserInfo 定义的表保存数据
|
|||
|
return redirect('/user/list/')
|
|||
|
else:
|
|||
|
# form中带了POST过来的请求
|
|||
|
return render(request, 'user_add_modelform.html', {'form': form})
|
|||
|
|
|||
|
|
|||
|
def user_edit_modelform(request, nid):
|
|||
|
"""
|
|||
|
用户信息修改
|
|||
|
nid 用于接收前端传递过来的id,他的名字要和urls.py文件中定义的一样
|
|||
|
"""
|
|||
|
# 1.先查询到该条记录
|
|||
|
# 2.拿到POST请求过来的数据(data=request.POST),将将查询到数据对象传递给form(instance=row_data)
|
|||
|
row_data = UserInfo.objects.filter(id=nid).first()
|
|||
|
|
|||
|
if request.method == 'GET':
|
|||
|
form = UserModelForm(instance=row_data) # 将查询到的对象传递给form
|
|||
|
return render(request, 'user_edit_modelform.html', {'form': form})
|
|||
|
|
|||
|
# POST请求
|
|||
|
form = UserModelForm(data=request.POST, instance=row_data) # 拿到所有提交过来的数据
|
|||
|
if form.is_valid(): # 数据校验
|
|||
|
form.save() # 向 model = UserInfo 定义的表保存数据
|
|||
|
return redirect('/user/list/')
|
|||
|
else:
|
|||
|
# form中带了POST过来的请求
|
|||
|
return render(request, 'user_edit_modelform.html', {'form': form})
|
|||
|
|
|||
|
|
|||
|
def user_delete_modelform(request, nid):
|
|||
|
"""
|
|||
|
用户信息删除
|
|||
|
nid 用于接收前端传递过来的id,他的名字要和urls.py文件中定义的一样
|
|||
|
"""
|
|||
|
UserInfo.objects.filter(id=nid).delete()
|
|||
|
return redirect('/user/list/')
|