您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Django基于角色的视图?

Django基于角色的视图?

Django已经有一个组和权限系统,这可能足以满足你的目的。

http://docs.djangoproject.com/en/dev/topics/auth/

通常,在你的代码中,你检查用户是否具有权限。用户具有自己的权限以及他所属的组的权限。你可以从管理控制台轻松进行管理。

你需要看两部分。

from django.contrib.auth.decorators import permission_required

@permission_required('polls.can_Vote')
def some_view(request):

对于2.,当前登录用户的权限存储在模板变量{{perms}}中。此代码检查与上述相同的权限。

{% if perms.polls.can_Vote %}
    <a href="/Vote">Vote</a>
{% endif %}

生成链接列表,你可以遍历user.get_all_permissions()并从字典中获取链接(或生成链接函数):

def more_elaborate_list_of_links_for_a_perm(user):
    return ["/link1", ...]

_LINKS = {
    'polls.can_Vote' : lambda u: ["/user/specific/link/" + u.id],
    'polls.can_close': lambda u: ['/static/link/1', 'static/link/2'],
    'polls.can_open' : more_elaborate_list_of_links_for_a_perm
}

def gen_links(user):
    # get_all_permissions also gets permissions for users groups
    perms = user.get_all_permissions()
    return sum((_LINKS[p](user) for p in perms if p in _LINKS), [])

可能还有许多其他方法

Go 2022/1/1 18:19:30 有347人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶