更新管理员数据

1、 获取修改管理员的详情信息

点就修改按钮时,我们需要先获取要修改的分组表详情信息

接口分析

请求方式: GET /meiduo_admin/permission/admins/(?P<pk>\d+)/

请求参数: 通过请求头传递jwt token数据。

返回数据: JSON

 {"id": "用户id","username": "用户名","mobile": "手机号","email": "邮箱","groups": ['用户组id', ...],"user_permissions": ['权限id', ...]}
参数 类型 是否必须 说明
username str 用户名
mobile str 手机号
email str 邮箱
groups list 用户组id
user_permissions list 权限id

后端实现

# AdminView继承的是ModelViewSet 所以管理员详情逻辑还是使用同一个类视图
from rest_framework.viewsets import ModelViewSet
from meiduo_admin.serializers.admin import AdminSerializer
from users.models import User
from meiduo_admin.utils import UserPageNum
from django.contrib.auth.models import Group
from rest_framework.response import Response
from meiduo_admin.serializers.group import GroupSerialzierclass AdminView(ModelViewSet):serializer_class = AdminSerializer# 获取管理员用户queryset = User.objects.filter(is_staff=True)pagination_class = UserPageNum# 获取分组数据def simple(self, reqeust):pers = Group.objects.all()ser = GroupSerialzier(pers, many=True)return Response(ser.data)

2、修改管理员

接口分析

请求方式: PUT /meiduo_admin/permission/admins/(?P<pk>\d+)/

请求参数: 通过请求头传递jwt token数据。

参数 类型 是否必须 说明
username str 用户名
mobile str 手机号
password int 密码
email str 邮箱
groups list 用户组id
user_permissions list 权限id

返回数据: JSON

 {"id": "用户id","username": "用户名","password": "密码","mobile": "手机号","email": "邮箱","groups": ['用户组id', ...],"user_permissions": ['权限id', ...]}
参数 类型 是否必须 说明
username str 用户名
mobile str 手机号
password int 密码
email str 邮箱
groups list 用户组id
user_permissions list 权限id

后端实现

# AdminView继承的是ModelViewSet 所以管理员信息修改逻辑还是使用同一个类视图
from rest_framework.viewsets import ModelViewSet
from meiduo_admin.serializers.admin import AdminSerializer
from users.models import User
from meiduo_admin.utils import UserPageNum
from django.contrib.auth.models import Group
from rest_framework.response import Response
from meiduo_admin.serializers.group import GroupSerialzierclass AdminView(ModelViewSet):serializer_class = AdminSerializer# 获取管理员用户queryset = User.objects.filter(is_staff=True)pagination_class = UserPageNum# 获取分组数据def simple(self, reqeust):pers = Group.objects.all()ser = GroupSerialzier(pers, many=True)return Response(ser.data)

注意:此处若是修改完密码后,密码是不会再加密了,所以要修改父类的方法

在序列化器中进行修改:

from rest_framework import serializers
from users.models import Userclass AdminSerializer(serializers.ModelSerializer):class Meta:model = Userfields = "__all__"extra_kwargs = {'password': {'write_only': True}}# 重写父类方法,增加管理员权限属性def create(self, validated_data):# 添加管理员字段validated_data['is_staff'] = True# 调用父类方法创建管理员用户admin = super().create(validated_data)# 用户密码加密password = validated_data['password']admin.set_password(password)admin.save()return admin#  重写父类的更新方法,让密码加密def update(self, instance, validated_data):user = super().update(instance, validated_data)# 密码加密set_passworduser.set_password(validated_data['password'])user.save()return user

管理员信息管理之更新管理员数据相关推荐

  1. 管理员信息管理之获取管理员用户列表数据

    管理员信息管理 在系统管理中我们需要完成管理员表的增删改查,这时候我们可以借助于视图集中的ModelViewset来完成相应的操作 获取管理员用户列表数据 接口分析 请求方式: GET /meiduo ...

  2. 管理员信息管理之删除管理员信息数据

    删除管理员信息数据 接口分析 请求方式: Delte /meiduo_admin/permission/admins/(?P<pk>\d+)/ 请求参数: 通过请求头传递jwt token ...

  3. 管理员信息管理之保存管理员数据

    保存管理员数据 在保存数据之前我们需要获取权限表数据和分组表数据展示,权限表数据的获取接口已经完成,我们只需要获取分组表数据 1.获取分组表数据 接口分析 请求方式: GET /meiduo_admi ...

  4. 关于:win10应用商店下载东西时提示此安装被策略阻止,需请求管理员启用 Windows 更新(解决方案)

    关于:win10应用商店下载东西时提示此安装被策略阻止,需请求管理员启用 Windows 更新(解决方案) 问题描述↓ 解决方法↓ 打开[开始]菜单,输入cmd,右键选择[以管理员身份运行]: 执行以 ...

  5. mysql中更新的命令是_MySQL 语言中,更新表数据的命令是( )。_学小易找答案

    [简答题]MySQL 语言中包含数都定义语言.数据操纵语言和数据控制语言,分别有哪些功能? [单选题]查询员工工资信息时,结果按工资降序排列,正确的是( ). [简答题]arrayList测验 [填空 ...

  6. 计算机管理员相关知识,计算机管理员述职报告范文

    计算机管理员述职报告范文 计算机管理员述职报告范文 尊敬的医院领导: 我叫xxx,20xx年7月毕业于西南计算机科学与技术专业.20xx年8月到医院工作,从事网络管理工作已有4年时间,能够胜任本职工作 ...

  7. java的创建管理员对象_java--更改管理员密码,请列位帮忙看看有没有更好的实现方式...

    需求说明:输入旧的用户名和密码,如果正确,方有权限更新,从键盘获取新密码,进行更新 实现思路:1.创建管理员类的对象:2.利用while实现循环执行 import java.util.Scanner; ...

  8. (原) ODP.NET 演示通过结果集的锁顶来更新 LOB 数据

    using System; using System.Data; using System.Text; using Oracle.DataAccess.Client; using Oracle.Dat ...

  9. 取消管理员取得所有权_win7管理员取得所有权批处理 - 卡饭网

    给力Windows XP如何添加"管理员取得所有权"右键菜单 给力Windows XP如何添加"管理员取得所有权"右键菜单 如果WinXP也能添加这个功能多好啊 ...

最新文章

  1. BOYA 心形灵敏度麦克风的改装
  2. python【力扣LeetCode算法题库】1111- 有效括号的嵌套深度
  3. 推荐几个电子/嵌入式方向的公众号
  4. sockaddr和sockaddr_in的区别
  5. Elasticsearch--Docker安装ES---全文检索引擎ElasticSearch工作笔记002
  6. 敏捷开发般若敏捷系列之八:敏捷的未来会怎样?
  7. 此电脑怎么放在桌面上_电脑内部与麦克风的声音怎么同时录制?详细教程在此...
  8. 13. Magento 后台top栏开发(二)
  9. web切图怎么做_Web前端切图快捷键、技巧和经验
  10. phpwind升级php7,7.3版本下载超30万次 PHPWind7 终极版开放下载
  11. SOLIDWORKS PDM 2021安装步骤
  12. python中统计函数_Python中的统计函数
  13. JGROUPS JGRP000029问题
  14. 数据中心加湿系统计算及方法探讨【新规范加湿方式对比及计算分析】
  15. Elasticsearch入门到精通教程 - 学习资料综合
  16. XcodeDebug---Instrument
  17. HAL库 output level 和 pull up/ pull down 的区别
  18. DIY | 教你做一个万圣节专属徽章!
  19. 计算机打开服务的命令行,Win7使用命令行启动和停止Windows服务程序技巧
  20. Win11应用程序启动提示配置不正确解决方法

热门文章

  1. 告别手敲 SQL ?GPT-3 自动帮你写
  2. 夺得WSDM Cup 2020大赛金牌的这份参赛方案,速来get!
  3. 聊聊抖音、奈飞、Twitch、大疆、快手、B站的多媒体关键技术
  4. 反转字符串/列表、改变递归次数限制、else用法...Python 冷知识(四)
  5. 双十一报名截止,决赛在即!AI Challenger2018极客峰会免费抢票!
  6. AI一分钟 | 南大用算法匹配室友,降低矛盾概率;丰田向Uber投5亿美元
  7. 【深度学习理论】通俗理解生成对抗网络GAN
  8. 10分钟教你用睡觉这件事玩转贝叶斯推断
  9. 详细介绍 IOC 和 DI
  10. 从0梳理1场时间序列赛事!