django实现不同用户查看不同菜单
Posted python运维之路
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django实现不同用户查看不同菜单相关的知识,希望对你有一定的参考价值。
django实现不同用户查看不同菜单
当我们用django做好一个管理系统之后,通常会给不同的用户不同权限,当然不同的用户看到的页面也应该是不同的,比如研发不应该看到运维的相应菜单,运维又不应该看到超级管理员的对应菜单。如何实现呢,笨方法就是为不同权限的人各写一套页面,但是工作量太大,而且代码不重用。
我们下面这个方法是使用将菜单存成一张menu表,然后根据request.root和menu表关联,来实现不同的用户显示不同的菜单。
先首要把菜单栏作为一个表,菜单的名字和菜单的链接(url的name参数)都是表项。
然后我们根据登录的用户,来判断这个用户是研发还是测试还是运维,来显示不同的菜单。
如果做到呢,request有个root参数能显示当前的登录用户,这个默认在user表里;然后把user表和自己创建的userprofile表建立一对一关系,就能根据user表找到userprofile表。userprofile表可以如下建立:
这样,就根据的登录的用户关联到了userprofile表,再通过userprofile表去关联自己建立的其他表。
我是如下关联的:
userprofile表对应role表,即你这个用户属于什么角色
role表对应menu表,根据角色选择不同的菜单
由此就实现不了不同的用户显示不同的菜单
以上是关于django实现不同用户查看不同菜单的主要内容,如果未能解决你的问题,请参考以下文章