首页
SimpleUI自定义菜单后的菜单控制
SimpleUI自定义菜单后的菜单控制
03-23 16:10:53
329
4
在使用自定义菜单栏以后Django的默认权限管理菜单栏就不生效了,这时候想做到隐藏菜单栏需要设置入站中间件来控制。
菜单栏引用的是文档里的 simpleUI自定义菜单, 注意把 dynamic
改成 False
下面是操作
- 先在admin所在的app目录下新建一个
middleware.py
文件
from django.conf import settings
from django.utils.deprecation import MiddlewareMixin
class FilterMenu(MiddlewareMixin):
def process_request(self, request): # noqa
if "/admin/" in request.path:
print("访问地址: ", request.path)
print("登陆用户: ", request.user)
groups = request.user.groups.all()
print("用户组: ", groups)
# settings.SIMPLEUI_CONFIG['menu_display'] = []
for group in groups:
# 可以根据用户组来进行菜单栏管理,可以设置个字典进行配置
# 用户组名和菜单名对应,然后 settings.SIMPLEUI_CONFIG['menu_display'] .append(dict_menu[group.name])就行
print(group.name)
# 这里是根据用户名指定不同的菜单
if request.user.username == 'user123':
settings.SIMPLEUI_CONFIG['menu_display'] = ['Simpleui', '测试']
print(settings.SIMPLEUI_CONFIG)
- 把中间件加入到
settings.py
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'app1.middleware.FilterMenu', # 放在AuthenticationMiddleware后面都行,这里的文件名地址注意下就可以了
]
好了,就是这么简单。
如果要对二级和三级菜单进行管理,那就得对 settings.SIMPLEUI_CONFIG['menus']
进行重新赋值,照着菜单栏的数据结构赋值就行, 也可以多配置一些 menu_display
打赏作者
评论(4)
请登录后发表评论
热门文章
选中导出时出现CSRF错误
求助帖:自定义的app用不了
页面错误
simplepro如何将主题和字号设置为默认主题
求助贴:使用Filefield字段,界面能正常上传文件,但是点击文件路径报错:“”
Django添加了Html5标头(<!DOCTYPE html>)申明html5页面后资源请求正常但是页面不加载css内容,去了html5标头使用混合模式又正常
simpleui/simplepro正常安装,就缺fields软件包,在pycharm安装也不行
接上次提问:simplepro中fields软件包为解压运行出问题
SimplePro 数据列表翻页 出现 加载图标,不见数据
simplePro的兼容性能否适配一下
