【发布时间】:2020-07-25 09:17:38
【问题描述】:
我正在创建一个 ERP 类型系统,其中有一个名为“employee”的 django 模型(表)。
我希望公司的每个员工都成为“员工”。 (例如编码员、老板、看门人、直线经理等都将是“员工”)
我还希望一些员工拥有一名或多名直线经理。一个直线经理可以有多个员工在他/她的手下。
所以问题是如何使直线经理成为“员工”表的一部分,并在直线经理下有一个描述“员工”的字段?这样我就可以显示员工拥有的直线经理。还要显示哪个部门经理在他手下有哪些员工?
这是模型文件:
class Team(models.Model):
name = models.CharField(max_length=64)
t_id = models.CharField(max_length=64)
def __str__(self):
return self.name
class Employee(models.Model):
first_name=models.CharField(max_length=64)
last_name=models.CharField(max_length=64)
e_id=models.CharField(max_length=64)
current_role=models.CharField(max_length=64) # "coder"
past_roles=models.CharField(max_length=512) # "coder, developer, janator" (seperator: ,)
teams = models.ManyToManyField(Team, related_name="employees", blank=True)
joining_date = models.DateTimeField(null=True,blank=True)
desk_location=models.CharField(max_length=64)
#How do I go about this?
line_manager = ???
def __str__(self):
return self.first_name
我是 django 的新手,所以如果我遗漏了一些非常简单的东西,请原谅我。此外,如果有更优雅的解决方案需要我添加额外的表格,我不介意。
谢谢
【问题讨论】:
标签: django postgresql django-models database-design relationship