1.在admin.html是通过url参数来向后端传送是否取消管理员的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | % for user in users: < tr > < td >${user.username}</ td > # 这里的user对象是迭代出循环的每一个user对象 < td >${user.is_superuser}</ td > < td >${user.date_joined}</ td > < td > % if user.is_superuser: < td >< a href = "${reverse('admin_update_status')}?status=off" >取消管理员</ a ></ td > %else: < td >< a href = "${reverse('admin_update_status')}?status=on" >设为管理员</ a ></ td > % endif </ td > </ tr > % endfor |
2.在后端处理的视图函数,
1 2 3 4 5 6 7 8 9 | class UpdateAdminStatus(View): def get( self , request): status = request.GET.get( 'status' , 'on' ) _status = True if status = = 'on' else False request.user.is_superuser = _status # 这里request.user是当前登录的用户的对象 request.user.save() # 数据库中实际修改的是当前登录用户的user对象的管理员状态 return redirect(reverse( 'admin_manager' )) |
问题现象:
修改用户的管理员状态,实际修改的时当前用户的管理员状态: