遺漏知識點
1.構建表結構時,誰被關聯誰就是主表,在層級刪除的時候,刪除子表的時候,主表不會被刪除,反之刪除主表的話,字表也會被刪除,
使用related_name=none 反向查詢,起名用的
之前使用表名小寫+__set.all() 使用related_name=none 就直接使用別名.all()不再使用表名小寫+__set方法了
django許可權之二級選單
操作步驟:
1.更改表結構
class2.把當前登入的使用者二級選單許可權資訊注入到session中menu(models.model):
title = models.charfield(max_length=32, verbose_name='選單'
) icon = models.charfield(max_length=32, verbose_name='
圖示', null=true, blank=true)
class
permission(models.model):
"""許可權表
"""title = models.charfield(max_length=32, verbose_name='標題'
) url = models.charfield(max_length=32, verbose_name='許可權'
) menu=models.foreignkey("
menu
",on_delete=models.cascade,null=true) ###注意:設定null為true是為了辨別那個路徑是選單許可權!
1.查詢當前登入人的所有許可權
permissions = role.objects.filter(user=user).values("permissions__url",
"permissions__title
",#拿到使用者的許可權名
"permissions__menu__title
",#拿到二級選單的選單名
"permissions__menu__icon
",#拿到二級選單的圖示
"permissions__menu__pk
").distinct()#拿到二級選單的pk
permission_list = #所有許可權列表
#二級選單以及選單許可權的結構思路:以pk值為鍵,以選單的title和icon為值
選單許可權列表套字典
permission_menu_dict ={}
# 將當前登入人的許可權列表注入session中3.獲取二級選單的資訊menu.htmlrequest.session["permission_list"] = permission_list
# 將當前登入人的選單許可權字典注入session中
request.session["permission_menu_dict"] = permission_menu_dict
class="multi-menu
">#迴圈構造的選單許可權字典,拿到字典的值
class="
item
">
#把圖示,文字,進行渲染
class="
title
">class="
}">}
class="
body
">
#迴圈取值
"}">}
#拿到選單許可權的資料web.py
from django.utils.safestring import mark_safe4.渲染頁面from django.template import library
import re
register =library()
@register.inclusion_tag("rbac/menu.html")
def get_menu_styles(request):
permission_menu_dict = request.session.get("permission_menu_dict")
print("permission_menu_dict",permission_menu_dict)
return
#前端渲染頁面,被繼承的頁面layout.html
Django 許可權(3) 動態顯示二級選單
上篇隨筆中,我們實現了動態顯示一級選單,現在考慮這樣一種情況,使用者的選單許可權比較多,這個時候全部並列展現在左側選單就不合適了,所以,現在有這樣乙個需求,即把使用者的選單許可權分類,劃分成二級選單,動態顯示在左側選單,解決方案如下 1 分析需求,要求左側選單如下顯示 客戶管理 客戶列表 賬單管理 ...
CSS二級選單
最近的 要求使用二級選單,本著 能用別人的就用別人的,不能用別人的就用自己的 的原則,在網上找到乙個經典的使用css製作的二級選單,感覺不錯,先記錄下來,以備它用。經典的二級選單如下圖所示 其實,所謂的二級選單都差不多,無非就是為二級選單定義乙個層,當滑鼠放在一級選單上的時候顯示這個層,而將滑鼠從一...
二級選單級聯
好久沒總結了。先總結下這倆個月,看了點.net後台,看了點c 但不是很多,這倆天看了點php.總結總結下.net遇到的問題吧。第乙個其實就是乙個二級選單的級聯問題。用乙個簡單的例子說明一下。例子是乙個省份和城市的級聯,資料都從乙個資料庫的一張表裡取。前台 倆個dropdownlist控制項,這裡注意...