如何使用单个模型"员工"在 django 中存储员工和经理?



我正在创建一个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的新手,所以如果我错过了一些非常简单的事情,请原谅我。此外,如果有一个更优雅的解决方案需要我添加额外的表格,我不介意。

感谢

据我所知,您希望围绕这两个模型建立某种关系。您希望员工有一个或多个直线经理,也希望经理有一个或者多个员工。我建议你在YouTube上搜索并找到关于多对多关系的教程,以及Django为这种关系提供的领域CCD_ 1。

以下是Django文档中关于模型之间多对多关系的链接:https://docs.djangoproject.com/en/3.0/topics/db/examples/many_to_many/.

然而,要实现此类功能,您需要为LineManagers本身提供另一个模型。

我希望这能有所帮助。祝你的项目好运!

最新更新