我有 5 个表User(即 Employee)Positions和Emp_position(这是 Employee 和 Positions 之间的关系表)。我有一个包含我公司所有部门列表的部门表和一个将(员工)Works_in映射到部门的关系表。User现在在 Works_in 表中,当我将User(Employee) 映射到Department我想检查我是否在 Works_in(relationship) 表中插入的数据时。那就是将员工映射到一个部门,是否已经有一个经理映射到它。
例子 :
员工
Himanshu
Bassi
BB
位置
Developer
Manager
Tester
Emp_position(关系表)
Employee Position
Himanshu Developer
Bassi Manager
BB Manager
部门
Web UI
Data Analysis
Machine Learning
works_in(关系表)
Employee Department
Himanshu Web UI
Bassi Web UI
BB Web UI # this is wrong, which needs to be checked
每个员工都会映射到一个部门,但一个部门不应该有多个经理。在这里,因为 Bassi 和 BB 是经理,我们不希望他们被映射到同一个部门。因此,为了这个目的,我想在将数据BB Web UI插入到我们的 Works_in 表之前检查要映射到某个部门的部门是否已经有一个经理映射到它。所以我想在将数据插入到我的 Works_in 表之前进行检查。
这是我的models.py文件。
from django.contrib.auth.models import User
class Position(models.Model):
position_name = models.CharField(max_length=20, unique=True)
def __str__(self):
return self.position_name
class Emp_position(models.Model):
emp_uname = models.ForeignKey(User, related_name='emp_name', to_field='username', on_delete=models.CASCADE, unique=True)
position_name = models.ForeignKey(Position, related_name='position', to_field='position_name', on_delete=models.CASCADE)
def __str__(self):
return str(self.emp_uname) + " " + str(self.position_name)
class Department(models.Model):
name = models.CharField(max_length=20, unique=True)
def __str__(self):
return self.name
class Works_in(models.Model):
emp_name = models.ForeignKey(User, related_name='works_emp_name', to_field='username', on_delete=models.CASCADE)
dept_name = models.ForeignKey(Department, blank=False, null=False, to_field='name',related_name='works_on_dept', on_delete=models.CASCADE)
def __str__(self):
return str(self.emp_name) + " " + str(self.dept_name)