在 Django 中,多表之间的关联主要通过模型(Models)的定义和使用来实现。Django 支持以下几种类型的多表关联: 外键关联(Foreign Key) 
外键关联是最常用的一种关联方式,它用于表示两个模型之间的“一对多”关系。通过在子模型(多的一方)中定义一个外键字段,该字段指向父模型(一的一方)的主键,从而建立关联。 python复制代码 
 
 | from django.db import models   |   
 |   |   
 | class Author(models.Model):   |   
 |     name = models.CharField(max_length=100)   |   
 |   |   
 | class Book(models.Model):   |   
 |     title = models.CharField(max_length=100)   |   
 |     author = models.ForeignKey(Author, on_delete=models.CASCADE) |  
  
在这个例子中,Book 模型通过 author 字段与 Author 模型关联,表示每本书都属于一个作者。 一对一关联(One-to-One) 
一对一关联表示两个模型之间的一一对应关系。在 Django 中,一对一关联通常通过 OneToOneField 字段实现。 python复制代码 
 
 | from django.db import models   |   
 |   |   
 | class UserProfile(models.Model):   |   
 |     user = models.OneToOneField(User, on_delete=models.CASCADE)   |   
 |     extra_info = models.CharField(max_length=100) |  
  
在这个例子中,UserProfile 模型通过 user 字段与 User 模型关联,每个用户最多有一个 UserProfile。 多对多关联(Many-to-Many) 
多对多关联表示两个模型之间的复杂关系,其中每个模型的实例可以与另一个模型的多个实例相关联。这种关系通过 ManyToManyField 字段实现。 python复制代码 
 
 | from django.db import models   |   
 |   |   
 | class Teacher(models.Model):   |   
 |     name = models.CharField(max_length=100)   |   
 |   |   
 | class Course(models.Model):   |   
 |     name = models.CharField(max_length=100)   |   
 |     teachers = models.ManyToManyField(Teacher) |  
  
在这个例子中,Course 模型通过 teachers 字段与 Teacher 模型关联,表示一个课程可以有多个老师,一个老师也可以教授多个课程。 通过模型方法实现关联 
除了使用 Django 提供的字段类型之外,你还可以通过在模型中添加方法来实现更复杂的关联逻辑。例如,你可以在模型中定义方法来获取相关联的对象列表,或者在查询时使用额外的逻辑来过滤关联对象。  
 这些关联类型提供了在 Django 中处理数据库关系的基本框架。通过它们,你可以创建复杂的数据库结构,并在视图(Views)和模板(Templates)中方便地访问和操作这些数据。  
 一、其中多对多的关系最多  
 |