Django - 模型 - 如何描述两个模型之间的特定双向关系?

时间:2015-02-23 11:49:57

标签: django django-models foreign-keys

我有两种模式:部门。每个人都可以在一个部门工作。部门可以由很多人经营。我不确定如何在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中建模这种特定关系的正确方法是什么? 如果您能提供示例(我是新手),我将不胜感激。

1 个答案:

答案 0 :(得分:4)

您可以将模型类名称设置为字符串,如

class Person(models.Model):
     department = models.ForeignKey('Department')
     ....

关于foreignkey关系的django doc的前几行解释了这一点。