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

Django - models - how to describe a specific bidirectional relation between two models?

我有两个模型:部门。每个人可以在一个部门工作。部门可以被很多人运行。我不确定如何在 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 class 在定义 Department 之前在其 ForeignKey 关系中引用了 Department class。同样,如果我将 Department 定义移动到 Person 定义之前,Department class 将在定义 Person 之前在其 ManyToMany 关系中引用 Person class。

在 Django 中为这种特定关系建模的正确方法是什么? 如果您能提供示例,我将不胜感激(我是新手)。

您可以将模型 class 名称作为字符串,如

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

关于 foreignkey 关系的 django 文档的前几行对此进行了解释。