Python 在django中为员工创建自定义角色

Python 在django中为员工创建自定义角色,python,django,python-3.x,django-models,django-middleware,Python,Django,Python 3.x,Django Models,Django Middleware,我已经为员工创建了一个角色模型,以便将员工分配到控制 基于其角色的整个应用程序。我的意思是,如果给予员工角色只能创建,那么员工应该能够创建库存、订单、项目等,如果给予员工角色可以创建、编辑和删除,然后,该员工将像一个管理员等。为此,我设计了如下模型,但我想知道什么是最好的方式来处理这样的问题,为什么 我应该选择中间件还是装饰方式?谁能给我举个例子吗 class Role(models.Model): name = models.CharField(max_length=100, blan

我已经为员工创建了一个角色模型,以便将员工分配到控制 基于其角色的整个应用程序。我的意思是,如果给予员工角色只能创建,那么员工应该能够创建库存、订单、项目等,如果给予员工角色可以创建、编辑和删除,然后,该员工将像一个管理员等。为此,我设计了如下模型,但我想知道什么是最好的方式来处理这样的问题,为什么

我应该选择中间件还是装饰方式?谁能给我举个例子吗

class Role(models.Model):
    name = models.CharField(max_length=100, blank=False, null=False)

    class Meta:
        verbose_name = 'Role'
        verbose_name_plural = 'Roles'


class Employee(models.Model):
    office = models.ForeignKey(
        OfficeSetup, blank=False, null=False, on_delete=models.CASCADE)
    name = models.CharField(max_length=150, blank=False, null=False)
    designation = models.ForeignKey(Designation, blank=False, null=False)
    section = models.ForeignKey(DepartmentSetup, blank=True, null=True)
    phone_number = models.CharField(max_length=150, blank=True, null=True)
    mobile_number = models.CharField(max_length=150, blank=True, null=True)
    email = models.EmailField(max_length=150, blank=False, null=False)
    gender = models.CharField(
        max_length=4, choices=GENDER, blank=True, null=True)
    role = models.ForeignKey(Role, blank=True, null=True)
    username = models.CharField(max_length=100, blank=False, null=False)
    password = models.CharField(max_length=100, blank=False, null=False)
    avatar = models.ImageField(
        null=True, blank=True, upload_to=upload_employee_image_path)

    class Meta:
        verbose_name = 'Employee'
        verbose_name_plural = 'Employees'

    def __str__(self):
        return self.name

通过管理员创建员工时,管理员提供的用户名、密码和电子邮件将与员工一起创建一个新的用户实例。Django提供了组和权限,可提供您所需的所有信息。 这可能有助于您-
Django文档-

你能给我举个例子吗?文档我觉得很难理解如果我没有错,文档只显示了对特定模型的设置权限,但我的用例是一次对所有模型设置权限