我有两种模式:人和部门。每个人都可以在一个部门工作。部门可以由很多人经营。我不确定如何在Django模型中构建这种关系。
这是我不成功的尝试之一[models.py]:
class Person(models.Model):
department = models.ForeignKey(Department)
firstname = models.TextField(db_column='first_name')
lastname = models.TextField(db_column='last_name')
email = models.TextField(blank=True)
class Department(models.Model):
administration = models.ManyToManyField(Person)
name = models.TextField()
我知道代码不起作用,因为Person
类在定义Department之前在其ForeignKey关系中引用Department
类。同样,如果我在Person定义之前移动Department定义,Department
类将在定义Person之前在ManyToMany关系中引用Person
类。
在Django中建模这种特定关系的正确方法是什么? 如果您能提供示例(我是新手),我将不胜感激。
答案 0 :(得分:4)
您可以将模型类名称设置为字符串,如
class Person(models.Model):
department = models.ForeignKey('Department')
....
关于foreignkey
关系的django doc的前几行解释了这一点。