我是否需要一家公司的休假批准者,需要多一的关系



我有一个: UserCompany

class User(AbstractBaseUser):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)
    company = models.ForeignKey(
        'projects.Company',
        on_delete=models.PROTECT
    )

class Company(models.Model):
    '''Company model
    every user needs to be assigned to a company
    '''
    name = models.CharField(max_length=255, unique=True)

现在,我需要a来设置每个companyleave approvers,这将是Users。可以有一些,我想为他们设定优先级。

如果它是单个LeaveApprover,那么我只需在Company型号中添加一对一的CC_7模型。但是在我的情况下,公司可以有很多批准者,批准者只能批准一家公司。

我需要many-to-many字段吗?

我认为在用户模型中添加指定字段将起作用。您可以根据名称轻松过滤用户;如果他是雇员或批准者,它将区分他。该模型看起来像这样....

class User(AbstractBaseUser):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)
    role = models.CharField(max_length=15)
    company = models.ForeignKey(
        'projects.Company',
        on_delete=models.PROTECT
    )

class Company(models.Model):
    '''Company model
    every user needs to be assigned to a company
    '''
    name = models.CharField(max_length=255, unique=True)

现在,公司可以有很多批准者,而批准者只能批准一家公司。

在您的视图中,您可以根据角色编写逻辑或分配特定权限。

最新更新