首页 > 解决方案 > 如何在 Django 中建模映射表

问题描述

我正在构建一个 Django 应用程序,它需要代表哪些学生在哪些班级。如果我在 SQL 中执行此操作,我将拥有三个表。一张用于班级,一张用于学生,然后是第三张表格,用于将学生和班级映射在一起。

在 Django 中,我可以使用三个模型来做到这一点。但是有没有一种“Djangonic”方式来表示两个类之间的映射?

标签: pythondjango

解决方案


顺便说一句,您描述的“事物”通常称为多对多关系,简称m2m。是的,django 有一个很好的设置方法。在 django 的文档中查找术语“ManyToManyField”。

在您的情况下,在您的 Student 课程中,您可以添加如下字段:

classes = models.ManyToManyField(
    'YourClassesModelNameHere', related_name='students')

在迁移时,django 将为您创建中间表。

希望这可以帮助。


推荐阅读