class Book(models.Model): # 默认会创建id name = models.CharField(max_length=32) # 中介模型,手动指定第三张中间表是Book2Author authors=models.ManyToManyField(to='Author',through='Book2Author',through_fields= ('book','author')) class Author(models.Model): name = models.CharField(max_length=32) def __str__(self): return self.name class Book2Author(models.Model): id = models.AutoField(primary_key=True) book=models.ForeignKey(to='Book',to_field='id') author=models.ForeignKey(to='Author',to_field='id')
-through:来指定我的第三张表是哪个
-through_fields:('book','author'),第一个值是:从中间表找到设置关联字段的表,通过哪个字段,第一个位置就写它
-终极总结:防止混了:关联字段就是表名小写,第一个值:就是当前表的表名小写
-查询,新增,删除,都很方便 -第三张表,可以添加别的字段