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

she*_*k85 2 django foreign-keys django-models

我有两个模型:PersonDepartment。每个人可以在一个部门工作。部门可以由很多人管理。我不确定如何在 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()
Run Code Online (Sandbox Code Playgroud)

我知道该代码不起作用,因为在定义部门之前,该类在其 ForeignKey 关系中Person引用了Department该类。同样,如果我将 Department 定义移到 Person 定义之前,则Department该类将Person在定义 Person 之前在其多对多关系中引用该类。

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

Roh*_*han 5

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

class Person(models.Model):
     department = models.ForeignKey('Department')
     ....
Run Code Online (Sandbox Code Playgroud)

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