我是否需要为公司的休假审批人建立多对多的关系?

问题描述 投票:1回答:1

我有一个: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)

现在我需要设置几个leave approverscompany将是Users。可以有几个,我想为他们设置优先级。

如果它是单个LeaveApprover那么我只需要添加一对一到Company模型与LeaveApprover的外键。但就我而言,公司可以有很多批准者,批准者只能批准一家公司。

我需要一个many-to-many场吗?

django django-models
1个回答
1
投票

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

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)

现在公司可以拥有多个审批人,审批人只能批准一家公司。

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

© www.soinside.com 2019 - 2024. All rights reserved.