0

我试图让我的菜单根据我的代码中的设置自动更改,所以我的模板中没有重复的逻辑。现在,我使用路由名称来生成 url,request.route_path(name)并确定用户当前所在的页面request.matched_route.name。我现在的问题是我想对不同的视图拥有不同的权限,并自动隐藏用户无权访问的菜单项。

主要困难之一是一条路线可以有多个视图。但即使只有一个视图与路线相关联,我似乎也找不到任何简单的方法来检索它。

我正在使用 URL 调度。这是只能通过遍历才能做到的事情吗?

4

1 回答 1

0

通常我为此使用以下模式的组合:

  • 我的观点被组织成分类
  • 基类有一个 basic _menu,它是一个列表,(menu_title, route_name, params)其中列出params了可选存在的 dict。在模板中时,我可以使用menu从请求和上述属性构建菜单的属性。
  • 在模板中创建一个迭代这些条目的函数,显示每个但检查has_permission是否实际允许视图。

这些想法应该让您开始使用动态解决方案。它对我来说很好,但可能需要更多调整,例如,我根据当前路线将另一个值“活动”附加到生成的菜单。

于 2013-08-20T14:30:19.767 回答