我有一个:User
和Company
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 approvers
每company
将是Users
。可以有几个,我想为他们设置优先级。
如果它是单个LeaveApprover
那么我只需要添加一对一到Company
模型与LeaveApprover
的外键。但就我而言,公司可以有很多批准者,批准者只能批准一家公司。
我需要一个many-to-many
场吗?
我认为在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)
现在公司可以拥有多个审批人,审批人只能批准一家公司。
在视图中,您可以编写逻辑或根据角色分配特定权限。