优化后台用户管理

This commit is contained in:
zmister 2021-02-16 20:25:51 +08:00
parent 7987109a67
commit 16612e1ad2
2 changed files with 61 additions and 45 deletions

View File

@ -256,34 +256,46 @@ def admin_overview(request):
@logger.catch()
def admin_user(request):
if request.method == 'GET':
# user_list = User.objects.all()
return render(request, 'app_admin/admin_user.html', locals())
elif request.method == 'POST':
username = request.POST.get('username','')
page = request.POST.get('page', 1)
limit = request.POST.get('limit', 10)
if username == '':
user_data = User.objects.all().values_list(
user_data = User.objects.all().values(
'id','last_login','is_superuser','username','email','date_joined','is_active','first_name'
)
else:
user_data = User.objects.filter(username__icontains=username).values_list(
user_data = User.objects.filter(username__icontains=username).values(
'id','last_login','is_superuser','username','email','date_joined','is_active','first_name'
)
# 分页处理
paginator = Paginator(user_data, limit)
page = request.GET.get('page', page)
try:
users = paginator.page(page)
except PageNotAnInteger:
users = paginator.page(1)
except EmptyPage:
users = paginator.page(paginator.num_pages)
table_data = []
for i in list(user_data):
for i in users:
item = {
'id':i[0],
'last_login':i[1],
'is_superuser':i[2],
'username':i[3],
'email':i[4],
'date_joined':i[5],
'is_active':i[6],
'first_name':i[7]
'id':i['id'],
'last_login':i['last_login'],
'is_superuser':i['is_superuser'],
'username':i['username'],
'email':i['email'],
'date_joined':i['date_joined'],
'is_active':i['is_active'],
'first_name':i['first_name'],
}
table_data.append(item)
return JsonResponse({'status':True,'data':table_data})
return JsonResponse({'code':0,'data':table_data,"count": user_data.count()})
else:
return JsonResponse({'status':False,'data':'方法错误'})
return JsonResponse({'code':1,'msg':'方法错误'})
# 后台管理 - 创建用户

View File

@ -16,12 +16,12 @@
<div class="layui-input-inline">
<input type="text" name="username" id="username" required lay-verify="required" placeholder="输入用户名" autocomplete="off" class="layui-input">
</div>
<button class="pear-btn pear-btn-primary pear-btn-sm" onclick="getUserInfo()"><i class="layui-icon layui-icon-search"></i>搜索</button>
<button class="pear-btn pear-btn-sm" onclick="getUserInfo()"><i class="layui-icon layui-icon-search"></i>搜索</button>
<button class="pear-btn pear-btn-primary pear-btn-sm" onclick="createUser()" type="button"><i class="layui-icon layui-icon-addition"></i>新增用户</button>
<button class="pear-btn pear-btn-primary pear-btn-sm" onclick="createSuperUser()" type="button"><i class="layui-icon layui-icon-addition"></i>添加管理员</button>
</div>
</div>
<div class="layui-row" lay-skin="line">
<div class="layui-row">
<table class="layui-table" id="user-list"></table>
</div>
</div>
@ -49,6 +49,18 @@
{{# } }}
{% endverbatim %}
</script>
<!-- 注册时间 -->
<script type="text/html" id="registerTime">
{% verbatim %}
{{layui.util.toDateString(d.date_joined, "yyyy-MM-dd HH:mm:ss")}}
{% endverbatim %}
</script>
<!-- 最后登录时间 -->
<script type="text/html" id="lastLoginTime">
{% verbatim %}
{{layui.util.toDateString(d.last_login, "yyyy-MM-dd HH:mm:ss")}}
{% endverbatim %}
</script>
<!-- 用户操作模板 -->
<script type="text/html" id="userOpera">
{% verbatim %}
@ -66,33 +78,27 @@
$.ajaxSetup({
data: {csrfmiddlewaretoken: '{{ csrf_token }}' },
});
//获取用户列表
getUserInfo = function () {
layer.load(1);
$.post("{% url 'user_manage' %}",{'username':$("#username").val()},function(r){
layer.closeAll('loading');
if(r.status){
//执行表格渲染
table.render({
elem: '#user-list' //指定原始表格元素选择器推荐id选择器
,height: 600 //容器高度
,limit:20
,page:true
,cols: [[
{field:'username',title:'用户名',width:160},
{field:'first_name',title:'昵称',width:160},
{field:'email',title:'电子邮箱',width:160},
{field:'is_superuser',title:'用户角色',width:100,templet:'#userRole'},
{field:'date_joined',title:'注册时间',width:200},
{field:'last_login',title:'最后登录时间',width:200},
{field:'is_active',title:'状态',width:60,templet:'#userStatus'},
{field:'oprate',title:'操作',width:180,templet:'#userOpera'},
]] //设置表头
,data:r.data
});
}
});
};
//获取用户列表,执行表格渲染
table.render({
elem: '#user-list',
url: "{% url 'user_manage' %}",
method:'post',
where:{
'username':$("#username").val(),
},
page:true,
cols: [[
{field:'username',title:'用户名',width:160},
{field:'first_name',title:'昵称',width:160},
{field:'email',title:'电子邮箱',width:160},
{field:'is_superuser',title:'用户角色',width:100,templet:'#userRole'},
{field:'date_joined',title:'注册时间',width:160,templet:'#registerTime'},
{field:'last_login',title:'最后登录时间',width:160,templet:'#lastLoginTime'},
{field:'is_active',title:'状态',width:60,templet:'#userStatus'},
{field:'oprate',title:'操作',width:180,templet:'#userOpera'},
]],
skin: 'line',
});
//新建用户
createUser = function(){
layer.open({
@ -217,8 +223,6 @@
},
});
};
//页面加载执行 获取所有用户信息
getUserInfo();
})
</script>
{% endblock %}