取出权限url

2018-03-20  本文已影响46人  两点半的杂货铺

一、思路

    username = request.GET.get('u')
    user = models.userinfo.objects.filter(username=username)
    # 通过用户id或者用户名,获取用户和权限的多对多 对象
    #obg_ru = models.User2Role.objects.filter(u=user)#['User2Role',User2Role]

 username = request.GET.get('u')
 user = models.userinfo.objects.filter(username=username)
 #利用modles.那个表就是查那个表的原则
 #obj_Role = models.Role.objects.filter(user2role__u = user)
#一条语句,查多对多表的user键查username
obj_Role = models.Role.objects.filter(user2role__u__username=username)
print(obj_Role)
#查完权限,查权限对应的操作,权限可能有很多所以用in
models.Url2Action2Role.objects.filter(r__in=obj_Role)#['Url2Action2Role','Url2Action2Role]
 #利用权限去查网址和增删改查的表
    obj_url2action = models.Url2Action.objects.\
        filter(url2action2role__r__in=obj_Role).\
        values('url__url','a__code').distinct()
    print(obj_url2action)

二、完美写法

def menu(request):
    # 第一种方法
    username = request.GET.get('u')
    obj_Role = models.Role.objects.filter(user2role__u__username=username)
    obj_url2action = models.Url2Action.objects.\
        filter(url2action2role__r__in=obj_Role).\
        values('url__url','a__code').distinct()
    print(obj_url2action)
    return render(request,'menu.html')

上一篇下一篇

猜你喜欢

热点阅读