【问题标题】:How can I create a separate module for role based permissions in django?如何在 django 中为基于角色的权限创建单独的模块?
【发布时间】:2020-01-17 12:26:19
【问题描述】:

功能说明:

要在系统中创建 3 个不同的角色来管理访问权限。

用例说明:

管理员:拥有完全访问权限

处理程序:一个可以添加和发布库存的人。无法查看库存或访问任何报告。

经理:可以访问库存和其他报告的人

详细说明:

创建滚动管理选项卡以处理用户选项卡

可访问性。

管理员只能授予访问特定选项卡的权限 仅限特定用户。

添加搜索功能 带导航的工作列表。 创建工作角色

为该工作角色分配对不同模块的访问权限

【问题讨论】:

    标签: django django-models django-rest-framework django-forms django-views


    【解决方案1】:

    首先,创建组并为组添加权限。最后,将用户添加到组。下面只是一个例子,请探索它。

    1.创建组并为组添加权限

    from django.contrib.auth.models import Group, Permission, User
    from django.contrib.contenttypes.models import ContentType 
    
    # import User model 
    
    new_group, created = Group.objects.get_or_create(name ='Administrator') 
    
    # Code to add permission to group 
    ct = ContentType.objects.get_for_model(YourTable) 
    
    # If I want to add 'Can go Haridwar' permission to level0 ? 
    permission = Permission.objects.create(codename ='can_add', 
                                        name ='Can add in your table', 
                                                content_type = ct) 
    new_group.permissions.add(permission) 
    

    2.添加用户到组

    user = User.objects.get(id=user_id)
    group = Group.objects.get(name='Administrator')
    user.groups.add(group)
    

    3.基于用户组,您可以控制您的系统。

    【讨论】:

    • 如何创建权限。就像我的项目中有 3 个应用程序:- 1) app1 2) app2 3) 用户管理(用于添加、更新、读取、删除用户)现在我想再创建一个应用程序名称作为“访问”。这里我要创建组并为app1、app2和用户管理添加权限
    猜你喜欢
    • 2023-03-15
    • 1970-01-01
    • 2020-03-05
    • 2014-01-08
    • 2021-06-24
    • 1970-01-01
    • 2018-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多