django - django中具有权限的菜单
问题描述
我正在 Django 中创建一个具有以下结构的模块化菜单;
class Pagina(models.Model):
nome = models.CharField(max_length=250, blank=True)
url = models.CharField(max_length=250)
def __str__(self):
return self.nome
class Voce(models.Model):
nome = models.CharField(max_length=250, blank=True)
Pagine = models.ManyToManyField(Pagina)
Permesso = models.ForeignKey(Permesso, on_delete=models.CASCADE)
def __str__(self):
return self.nome
class Menu(models.Model):
Voci = models.ManyToManyField(Voce)
我需要检查用户是否具有查看子菜单所需的权限(组中的权限)。
菜单按以下方式呈现;
{% for voce in menu.Voci.all %}
<li class="m-menu__item m-menu__item--submenu m-menu__item--rel {% ifequal parent voce.nome %}m-menu__item--active{% endifequal %}" m-menu-submenu-toggle="click" aria-haspopup="true">
<a href="javascript:;" class="m-menu__link m-menu__toggle">
<span class="m-menu__item-here"></span><span class="m-menu__link-text">{{voce}}</span><i class="m-menu__hor-arrow la la-angle-down"></i><i class="m-menu__ver-arrow la la-angle-right"></i>
</a>
<div class="m-menu__submenu m-menu__submenu--classic m-menu__submenu--left"><span class="m-menu__arrow m-menu__arrow--adjust"></span>
<ul class="m-menu__subnav">
{% for pagina in voce.Pagine.all %}
<li class="m-menu__item {% ifequal request.path pagina.url %}m-menu__item--active{% endifequal %}" aria-haspopup="true">
<a href="{{pagina.url}}" class="m-menu__link ">
<i class="m-menu__link-bullet m-menu__link-bullet--line"><span></span></i>
<span class="m-menu__link-title"><span class="m-menu__link-wrap"><span class="m-menu__link-text">{{pagina.nome}}</span></span></span>
</a>
</li>
{% endfor %}
</ul>
</div>
</li>
{% endfor %}
检查需要在第一个 for 循环开始后进行,以确定是否显示该特定子菜单。
用户的“gruppo”对象是与个性化 Group 对象的外键关系,该对象具有不同权限的 ManyToMany 关系,每个都有一个名称。我需要检查用户是否具有与当前循环通过的“语音”模型相同的权限。
感谢您的时间,
马泰奥
解决方案
推荐阅读
- sql - SQL Server:基于 JSON 更新表
- reverse-engineering - 为什么 'axt' 和 'aaa' 在 Radare 2 中不起作用?
- html - 如何使用 CSS Grid 布局获取带有粘性页眉和页脚的内容的滚动条?
- sass - 如何在 windows10 中使用“vscode live sass 编译器扩展”设置编译后的 css 文件的输出路径?
- django - 更新配置文件 Django 中所有用户的属性
- validation - 在单元格中使用动态范围和 Vlookup 公式进行数据验证以创建半自动列表
- javascript - jQuery / JS - 创建动态变量名
- javascript - 我想调用 data.json 文件中的对象
- ios - 错误线程 1:致命错误:在展开可选值时意外发现 nil?
- vba - VBA 宏:用特定字符串捕获一行并返回它