我需要一个公司许可证的多对多关系吗?
我有一个: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)
现在我需要设置每company
几leave approvers
这将是Users
。可以有几个,我想为他们设定一个优先级。
如果它是一个单一的LeaveApprover
那么我只是简单地添加一个一对一的Company
模型与外键到LeaveApprover
。但就我而言,一家公司可以有很多批准者,批准者只能批准一家公司。
我需要一个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)
现在,公司可以有很多审批和审批人只能批准一个公司。
在您的视图中,您可以根据角色编写逻辑或分配特定权限。
以上是 我需要一个公司许可证的多对多关系吗? 的全部内容, 来源链接: utcz.com/qa/263073.html