Django_permissions,如何根据权限模板我的菜单项?

时间:2018-01-30 11:44:34

标签: python django

我想根据给定的权限显示菜单项,例如,不是项目经理的用户,他们无法访问具有不同角色的其他用户的相同标头。 我已经实现了客户机仪表板和管理仪表板,以将用户与模板分开。

这是我的代码:

views.py

class UsersListView(istView):
permission_required = 'can_view_user'
template_name = "user_list.html"
model = User

def dispatch(self, request, *args, **kwargs):
    if check_permission_BM_or_AM(request):
        if request.user.is_authenticated():
            return super(UsersListView, self).dispatch(request, *args, **kwargs)
    return redirect_to_login(self.request.get_full_path(),
                         self.get_login_url(),
                         self.get_redirect_field_name())

menuitem.html

<ul>
<li class="dropdown-submenu ">
    {% if can_view_user%}
        <a tabindex="-1" href="/user/list/"><span
                class="fa fa-fw fa-book "></span> Users</a>
    {% endif %}
</li>

如何使用模板根据给定的`permission_required =&#39; can_view_user&#39;来使我的班级视图工作。许可?

提前谢谢

1 个答案:

答案 0 :(得分:0)

覆盖UsersListView的get_context_data方法,Sample可以是下面给出的格式。

class UsersListView(ListView):
    # define your variables

    # dispatch method

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['can_view_user'] = self.can_view_user
        return context