管理员信息管理之更新管理员数据
更新管理员数据
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 | 是 | 手机号 |
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 | 是 | 密码 |
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 | 是 | 密码 |
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
管理员信息管理之更新管理员数据相关推荐
- 管理员信息管理之获取管理员用户列表数据
管理员信息管理 在系统管理中我们需要完成管理员表的增删改查,这时候我们可以借助于视图集中的ModelViewset来完成相应的操作 获取管理员用户列表数据 接口分析 请求方式: GET /meiduo ...
- 管理员信息管理之删除管理员信息数据
删除管理员信息数据 接口分析 请求方式: Delte /meiduo_admin/permission/admins/(?P<pk>\d+)/ 请求参数: 通过请求头传递jwt token ...
- 管理员信息管理之保存管理员数据
保存管理员数据 在保存数据之前我们需要获取权限表数据和分组表数据展示,权限表数据的获取接口已经完成,我们只需要获取分组表数据 1.获取分组表数据 接口分析 请求方式: GET /meiduo_admi ...
- 关于:win10应用商店下载东西时提示此安装被策略阻止,需请求管理员启用 Windows 更新(解决方案)
关于:win10应用商店下载东西时提示此安装被策略阻止,需请求管理员启用 Windows 更新(解决方案) 问题描述↓ 解决方法↓ 打开[开始]菜单,输入cmd,右键选择[以管理员身份运行]: 执行以 ...
- mysql中更新的命令是_MySQL 语言中,更新表数据的命令是( )。_学小易找答案
[简答题]MySQL 语言中包含数都定义语言.数据操纵语言和数据控制语言,分别有哪些功能? [单选题]查询员工工资信息时,结果按工资降序排列,正确的是( ). [简答题]arrayList测验 [填空 ...
- 计算机管理员相关知识,计算机管理员述职报告范文
计算机管理员述职报告范文 计算机管理员述职报告范文 尊敬的医院领导: 我叫xxx,20xx年7月毕业于西南计算机科学与技术专业.20xx年8月到医院工作,从事网络管理工作已有4年时间,能够胜任本职工作 ...
- java的创建管理员对象_java--更改管理员密码,请列位帮忙看看有没有更好的实现方式...
需求说明:输入旧的用户名和密码,如果正确,方有权限更新,从键盘获取新密码,进行更新 实现思路:1.创建管理员类的对象:2.利用while实现循环执行 import java.util.Scanner; ...
- (原) ODP.NET 演示通过结果集的锁顶来更新 LOB 数据
using System; using System.Data; using System.Text; using Oracle.DataAccess.Client; using Oracle.Dat ...
- 取消管理员取得所有权_win7管理员取得所有权批处理 - 卡饭网
给力Windows XP如何添加"管理员取得所有权"右键菜单 给力Windows XP如何添加"管理员取得所有权"右键菜单 如果WinXP也能添加这个功能多好啊 ...
最新文章
- BOYA 心形灵敏度麦克风的改装
- python【力扣LeetCode算法题库】1111- 有效括号的嵌套深度
- 推荐几个电子/嵌入式方向的公众号
- sockaddr和sockaddr_in的区别
- Elasticsearch--Docker安装ES---全文检索引擎ElasticSearch工作笔记002
- 敏捷开发般若敏捷系列之八:敏捷的未来会怎样?
- 此电脑怎么放在桌面上_电脑内部与麦克风的声音怎么同时录制?详细教程在此...
- 13. Magento 后台top栏开发(二)
- web切图怎么做_Web前端切图快捷键、技巧和经验
- phpwind升级php7,7.3版本下载超30万次 PHPWind7 终极版开放下载
- SOLIDWORKS PDM 2021安装步骤
- python中统计函数_Python中的统计函数
- JGROUPS JGRP000029问题
- 数据中心加湿系统计算及方法探讨【新规范加湿方式对比及计算分析】
- Elasticsearch入门到精通教程 - 学习资料综合
- XcodeDebug---Instrument
- HAL库 output level 和 pull up/ pull down 的区别
- DIY | 教你做一个万圣节专属徽章!
- 计算机打开服务的命令行,Win7使用命令行启动和停止Windows服务程序技巧
- Win11应用程序启动提示配置不正确解决方法
热门文章
- 告别手敲 SQL ?GPT-3 自动帮你写
- 夺得WSDM Cup 2020大赛金牌的这份参赛方案,速来get!
- 聊聊抖音、奈飞、Twitch、大疆、快手、B站的多媒体关键技术
- 反转字符串/列表、改变递归次数限制、else用法...Python 冷知识(四)
- 双十一报名截止,决赛在即!AI Challenger2018极客峰会免费抢票!
- AI一分钟 | 南大用算法匹配室友,降低矛盾概率;丰田向Uber投5亿美元
- 【深度学习理论】通俗理解生成对抗网络GAN
- 10分钟教你用睡觉这件事玩转贝叶斯推断
- 详细介绍 IOC 和 DI
- 从0梳理1场时间序列赛事!