15qitongxue
xuede 特别渣 性格特别好 每次都回来分享失败的经验,碰到谁就和谁分享看了基础,去了何人说,回去整个项目再来面试,要带着项目去。简历上。(这么多年的开发)
提高自我解决问题的能力
没有BUG,怎么走每天备份代码,做好调BUG的准备
今日内容:
权限思维导图的方式整理出来
BUG1'web' is not a registered namespace
return (reverse('web:customer')) 没有web 命名空间BUG 2
return render()
一般模板渲染有问题, 一般数据出错了 (前端HTML)
解决前端 : 把web: 都替换了
rbac/distribute/permissions/?uID=2
给用户分配不同的角色分配权限用户信息 角色不同了 他的权限也跟着变(角色已有的权限)(点击保存)给角色分配不同的权限
点击BOSS(背景颜色变了) 所有权限都出来了 ,可以修改,保存
distribute_permissions
去改成数据结构 chlIDren (写的非常复杂,不会前端,for循环里有数据联动)
distribute_permissions 2
用户uID访问的时候没有保存 if uID ---》 有了保存
<a href="?uID={{ user.ID }}">{{ user.name }}</a></li>角色rID
直接就改了私有变量
_开头私有变量 (python中可以改,告诉别人是私有变量)
<td><a href="?{% gen_role_url request role.ID %}">{{ role.name }}</a></td> params = request.GET.copy() deepcopy也是这么改 _deepcopy 有mutable方法 params._mutable = True 下划线是私有变量 可以修改了=true params['rID'] = rID return params.urlencode() 编码 拼接字符串 rID = role.ID rID=1 答辩如何答辩 {‘name’:'chao','xx':111} name=chao&xx=11 三个人站台上,全班提问 request.get 在url = ? 的时候才会拿到值 if 判断 把用户已有的角色 勾选上 用户分配角色 rID
<a href="?
权限
前端只负责给后端要数据,后端只给前端数据,怎么渲染不管 AJAX做的 权限 res是数据 返回的是 parent = Fk('Permision')(和self ) 也行 关联自己 pID
weight 权重 排序的
List(permissions) Json反序列化下的 列表套字典 safe=False (字典没错,别的要falseyixia )
JsonResponse(contype是Json的,调用内部解析器,解析成内部的数据结构了)
$.each(循环) (i(索引),permission({‘x1‘:xx},{‘x2‘:xxx}))
组织数据 val [ermission]
import copyrequest.GET.copy() copy方法copy.copy(request.GET) __copy__
ES6 新增的模板语法
var s=‘‘多行语法
‘menu_${menu_pk}’ ID = 'menu_1'
Json在线格式化
pID = none 父级s = 'tr 一级菜单 tr 二级菜单'input name = 'per_ID' value={{pk}} $(#body).append(s)
这样显示格式是可以的,渲染的不同
if (menu_@R_403_5979@): tr tr
else : tr (tr (td td td))
根据per_${pk} #per_+parent_ID append
如果同处一个menu_ID 的情况下,会生成,两个 信息管理 信息管理
所以给个if 条件 判断一级菜单是否生成了
if (#menu+menu_pk).length(或者不加length) : s = ‘td‘
$ (#menu+menu_pk).parent().append(s) 一级标签加
流程:刚开始没有uID 没有rID 只有两条数据 和 权限的数据
if uID : vlaue_List = [(1,),(2,)] -->[1,2]
? p_ID_List = 权限有重复的 [1,2 ] 给了权限的AJAX
? --->permission2.HTML,role_ID_List p_ID_List
默认勾选a 标签发了get请求 给了 渲染的成rID 渲染的p_ID
? if role.ID in role_List : checked 模板的时候做
AJAX模板渲染之后 发送的AJAX ---》per_tree (发送了JsR)
拿到数据,生成标签,加到对应的页面位置
AJAX var p_ID_List = {{per_ID_List}}
找到 value = pk 和 in p_ID_List 一样的 给他加个checked
$.each(p_i_l,func(i,j){ })
有个AJAX局部刷 ,点击user 或者 role 的话刷新
{% if role.ID in role_ID_List %} //[1,2,3,4] <input type="checkBox" name="roles" value="{{ role.ID }}" checked/> {% else %} <input type="checkBox" name="roles" value="{{ role.ID }}"/> {% endif %}
url: 'tree' var per_ID_List={{ per_ID_List }} //[1,4]$.each(per_ID_List,function(i,j){ console.log($("[value='"+j+"']")[0]) $("#body [value='"+j+"']").prop("checked",true)})input生成标签的时候vlaue 是{{pk}} 值 默认值3 简单版本
保存提交
用户的角色(自带权限)分配user uID = 1
input name = ‘postType‘ value = ‘role‘ 就一个保存提交判断 是role 还是peRSSion
if method = ‘post‘ and request.POST .get(‘postType‘) ==‘role‘:
l = request.getList(‘roles‘)
user.first().roles.set(l) 基于对象的多表 *** 作 对象.
roles *** 作第三张表 set()先清空在赋值
user_List = 再查一遍 然后再渲染回去
role_List
@H_404_190@给角色分配权限自定义标签 + rID = 1 ? gen_role_
uID=1 & rID = 1 boss
rID request.GET.get(‘rID‘)
之前的是 p_ID_List = user.pk=uID
现在应该是
else rID : p_ID_List = models.Role.obj.filter(‘peRSSins__pk‘=ID).cla正向
if uID: p_ID_List = models.user.obj.filter(‘peRSSins__pk‘=ID).cla
input name = ‘postType‘ value = ‘permission‘
if re.method ="POST" and value = ‘P‘:
? l= request.POST.getList(‘permission_ID‘)
? models.Role.objects.filter(pk=rID).first()取出对象.permissin.set(l)
r除了权限之外都是增删改查,但是业务要给人说,吹总流程
两个BUG
第一个点击消失,二级菜单 if 路径第二个增删改查,点击消失 if pID
权限加到项目
1 settings 权限相关配置加到自己项目配置中
2 权限中间件更改一下,配置一下 (权限都写在rbac中,)(出现什么BUG,心里有数)
? (有一些功能对不上的,按着流程一步步揪)
3 白名单 ,登录
4 登录---表里面有没有这些数据--提取数据,session中 注入permission_List,[{‘pID‘,‘@R_403_5979@‘,‘url‘,‘pk‘}]
5 登录认证,权限认证 request.session[‘permission_List‘] request.path
6 url-视图-模板
7 模板渲染,左侧菜单栏权限(走到页面展示(流程图))
8 不同的客户对应不同的 *** 作
9 权限管理 (角色的增删改查 权限的增删改查)
nbcrm
setting 给了 rbac.
setting 配置一下 white .setting.confire = [‘‘,‘‘,‘‘]
注意 : 路径分配
rbac 有个user表
nbapp 有个user表
from nbapp.models import UserInfo
class User(models.Model):
? user = models.onttoonefIEld(‘nbapp.userinfo‘) 对应好了
查询的时候:
? login 登录成功之后注入权限:
? if user_obj :
? 用的是rbac 表里的对象 而不是nbapp
? init_session(request,) rbac里的关联的用户表
总结以上是内存溢出为你收集整理的day78全部内容,希望文章能够帮你解决day78所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)