python - 如何在 Django 中建模映射表
问题描述
我正在构建一个 Django 应用程序,它需要代表哪些学生在哪些班级。如果我在 SQL 中执行此操作,我将拥有三个表。一张用于班级,一张用于学生,然后是第三张表格,用于将学生和班级映射在一起。
在 Django 中,我可以使用三个模型来做到这一点。但是有没有一种“Djangonic”方式来表示两个类之间的映射?
解决方案
顺便说一句,您描述的“事物”通常称为多对多关系,简称m2m。是的,django 有一个很好的设置方法。在 django 的文档中查找术语“ManyToManyField”。
在您的情况下,在您的 Student 课程中,您可以添加如下字段:
classes = models.ManyToManyField(
'YourClassesModelNameHere', related_name='students')
在迁移时,django 将为您创建中间表。
希望这可以帮助。
推荐阅读
- c# - 如何遍历枚举数组
- excel - 与 Excel 中的公式类型不匹配(错误 13)
- c# - C# 创建 24/32bit 声音 wav 文件
- vagrant - Vagrant Inline 运行触发器无法识别 IO 重定向
- spring - 初学者问题:对以前的版本使用 spring initializr 还是变通?
- javascript - Fabric js - 在画布上悬停而不是单击/鼠标向下自由绘图
- javascript - Javascript:如何在没有特定用户事件的情况下复制到剪贴板
- c# - 使用扩展方法复制数组
- python - 重命名 pandas 数据框中的一系列列(对编码来说真的很新,一个好心的白痴)
- java - 使用字符串和列表迭代地图
并替换为列表