自用运维平台的权限系统中有涉及到一个用户管理的功能,其中包含了用户的角色修改,用户和角色是多对多的关系,前端编辑界面的角色展示为了减少更新麻烦,采用动态从后端获取角色列表,这样后端修改也不需要前端去做更新,管理界面的配置用户角色的地方需要用到复选框,因为是多对多,这里用js去完成修改后赋值到初始字段中,使后端可以轻易的读取,
前端用户管理界面
点击编辑按钮,弹出对应的用户信息,这里是之前写的如何给子页面赋值
可以看到这里的角色是可以多选的,而且这些选项是动态从后端获取的。
动态获取角色(获取复选框)
由于这个编辑按钮是在用户管理这个界面,所以我在后端定义了当用户管理界面模板有请求时就会把数据库的所有roles以列表的形式存到session中,所以当用户去点击编辑时,session中已包含角色的相关值,前端模板再从session获取遍历取值动态展示
访问用户管理界面时,后端django代码
#用户管理模板
def index(request):
if request.method == 'GET':
# 添加到操作记录
act_data = "访问用户界面"
act_result = "成功"
a = act_history(request, act_data, act_result)
obj = Role.objects.all().values("title")
roles_list = [i['title'] for i in obj]
request.session["roles"]= roles_list
print(roles_list)
return render(request,'web/user/user.html')
前端编辑页面动态获取角色的代码
<div class="layui-form-item">
<label class="layui-form-label">所属角色</label>
<div class="layui-input-block">
{% for i in request.session.roles%}
<input type="checkbox" name="roles" title="{
{i}}" value="{
{i}}