day76
昨日回顾
1 哪些权限在菜单栏显示,设计数据表,一级菜单表menu,权限表加了一个menu字段,foreignkey到menu表,权限注入,设计数据结构:
{1:{#1---menu_id 'title':'..',children:['title':'二级','url':'xx',{。。。}]},2:{'title':'..',children:['title':'二级','url':'xx']}}
只要访问的url和当前的url差不多的话,就没有hide class='' 显示,还给她加了一个active
if re.match('^{}$'.format(child[]),request.path):#但是写死了,添加的时候,url不一样了,一级菜单()和二级菜单url不匹配
item['cl'] = '' it['cla'] = active
pk和pid
if request.show_id == child['pk']: # 等于
child 是左边的id
show_id 是 11115555
for key, item in menu_dict.items():
item['class'] = 'hide'
for child in item['children'] :
if request.show_id == child['pk']: # 等于
request.session['flag'] = True
item['class'] = ''
child['class'] = 'active'
# break
点击现在的url,show_id为5555或者1111,request.show_id ,
children为 12345678 所以可以匹配得到
得出第一级菜单 1111 对应 1 5555 对应5 所有的url都可以匹配
(1 ) item['class'] = hide 给了children
(2) 点一下:取消的bug
class = 'hide' ------> class=''
(3) 默答 rbac
怎么设计的表机构,逻辑,权限
还没有做录入权限(权限管理,角色管理)呢,批量权限,批量录入
(4) 点添加客户和别的,
自动合上了。 路径的做不到,
(5) pk 和pid
pk给1级加了 一级菜单的pk
不理解的:这样取值:request.show_pid = m.P.o.f(url=request.path).first().pid
request.show_pid = item['pid'] 都给他加
permission_list = [{'url':'xxx','pid':'xxx'}]给他加了pid
循环添加 item['pid']
今日内容
面包屑
又叫路径导航,点一下,又出来一个。
动态生成:三级编辑的可以替换删除的
首页:客户列表 客户列表的url (按说首页是欢迎页面,但是这里写死了)
middlewares.py
request.menu_breadcrumb = [
{‘title’:'首页',‘url’:'javascript:void(0)'},
#{‘title’:'客户列表',‘url’:'/cusomter/list/'}, 写死了 #js:void(0) 每次都刷新,不加井号 让人看不让人用
]
if ret:
if item['pid'] == item['pk']:
request.menu_breadcrumb.append(
{
'title' : item['title'],
'url':request.path,
})
from rbac import models
else: 循环多次所以渲染多次首页/客户列表/编辑客户
obj = models.Pe.o.filter(pk=item['pid']).first()
l1 = [
{ #父权限 客户列表
'title':obj.title,
'url':obj.url,
},
{ #子权限 编辑客户
'title' : item['title'],
'url':request.path,
},
]
request.menu_breadcrumb.extend(l1) 和append差不多
permission_input.py
permission_list = {....title:item['title']} 也有pid 也有pk
layout.html
{% for bread in request.menu_breadcrumb}
{% if forloop.last%}
{{bread.url}}{bread.title} 产品经理最后的没有了点击效果
{% else}
a href {{bread.url}}{bread.title}
{% endif }
{%endfor}
有没有自适应的,二级的三级,一级级
怎么拓展表,怎么拓展菜单
评论树 多级评论
(5) 作为开发,表要记熟了。
(6) class Meta:
db_table = 'Permission' ?
ve_name_ = ‘权限表’ 给admin看的
创建角色:自己创建 不是filed = 'all'
分配权限:人给你弄
各个东西都接到后台管理上,项目越做越大 ?
(7) a 标签
a href <? index=1> 拼当前路径
/必须要加
index = 1 拼路径了
(8)menu/list
菜单表的增删改查
点击
权限表的增删改查
下拉
(9) chice_iconlist = []
modelform 选择框 权重先不管
2 权限分配
权限,没有分配权限
admin里分发的,让人自己分配
创建角色,分配权限,
做的都是权限限制,权限分配好之后做的事情
录用户,录权限,录角色,自己去分配去
权限认证,动态菜单,除了细节的按键分配,面包屑都写了rbac里面
第一个任务: 做 rbac: 角色录入 角色权限menu.list
第二个任务:
加表 到nbcrm
部门表 userinfo dep = models.Fk('Department',null=True)
班级信息 classlist
表 classstudyrecord stuentstudyrecord
报名表 enroll
学生表 Student 增删改查 onetoone “customer” 当初作为客户的信息 或者客户的作为学生的信息
publish
id addr name
book
id title price addr publish 重复了冗余 所以
id title price publish_id
关于上课记录表和学生学习记录表
sTsTre 学员学习记录表
id name class content homework kaoqin socre
1 chao 20 crm crm 正常 60
2 hei 20 crm crm 迟到 18 记录重复了部分
单独提炼出来班级课程学习记录表
id sTsTre关联一个id就行了
有余力 (1) 加到crm里
有余力 (2) 报名表的增删改查
部门表 , 学生表也改完,增删改查
再讲另一个批量操作 剩下的时间,补充Django的其他内容,项目差不多
下周,Django其他的内容 再不项目做差不多
af_pr
错误1
关联父级的
'title':item['title'],
'icon':item['icon'],
True
'title': item['menu__title'],
'icon': item['menu__icon'],
错误2
'WSGIRequest' object has no attribute 'menu_breadcrumb'
request.menu_breadcrumb = [
{'title':'首页','url':'javascript:void(0);'},
] 没有写这个 ,返回当前页
错误3
不能按格式显示,点击不反应
为没有引入menu.js(里面写了点击事件,详情见day75),和menu.cs样式,刷新了缓存就好了,亮哥说是因为有缓存就用缓存的,所以没有加载上js,。。
错误4
显示问题:
打开了登录后的页面,却显示了三层,两个一级菜单和一个二级菜单,不对:应该是两个一级菜单,二级都不打开,因为没有点击,所以合着。
一帆说:肯定的这样啊,因为这个页面是customer页面,匹配了,所以开了,也对。解决方法是给一个主页,主页的是合着的。点击customer便打开的这样。
(10)模板 block的用法
layout.html(模板里)
{% block con %}
{% load rbac %}
{% menu request %}
{% endblock %}
1 引用模板的文件不写block 🎧默认继承🎧
2 写了block的改变格式了
{% extends 'layout.html' %}
{% block con %}
{% endblock %} 没有了load rbac的内容了
xiantianbuzu,houtiannuli,bururen,shibushun,qingjiao,nuli.youhaoshi,xiangzhideshang? 一天,做点事情 ,值得铭记?
不走神,关注一件事情,即使不会,也跟着。哪不会?