Django中的动态用户菜单

时间:2009-06-26 18:54:56

标签: django dynamic menu permissions

是否有办法让用户菜单根据分配给用户所属用户组的权限而更改?我正在考虑在视图级别检查这些权限的内容,并删除用户无权访问的菜单选项。

2 个答案:

答案 0 :(得分:9)

是的,可以访问模板中的用户对象,并检查用户是否是这样的人员:

{% if user.is_staff %}
    <li>
        <a href="/admin/">Admin</a>
    </li>
{% endif %}

这将是您的菜单所在的li项链接的示例。仅为具有is_staff状态的用户呈现管理员链接。使用is_authenticated也可以这样做。

Django的构建是为了将逻辑和表示分开,所以如果你想对菜单做一些更细粒度的控制,我建议你在视图中做一些逻辑,然后设置一个你可以检查的变量。用于确定要显示哪些菜单的模板。

答案 1 :(得分:2)

在大多数情况下,django的管理员已经没有给你链接到你不能做的事情。

Django grappelli(django admin skin)实现某种书签,如果这就是你的意思http://code.google.com/p/django-grappelli/