Python - Django - 作者表多对多关联书籍表
models.py 代码:
from django.db import models # Create your models here. # 出版社 class Publisher(models.Model): id = models.AutoField(primary_key=True) # 自增的 id 主键 # 创建一个 varchar(64) 的唯一的不为空的字段 name = models.CharField(max_length=64, null=False, unique=True) def __str__(self): return "<Publisher object: {}>".format(self.name) # 书籍 class Book(models.Model): id = models.AutoField(primary_key=True) # 自增的 ID 主键 # 创建一个 varchar(64) 的唯一的不为空的字段 title = models.CharField(max_length=64, null=False, unique=True) # 和出版社关联的外键字段 publisher = models.ForeignKey(to="Publisher") def __str__(self): return "<Book object: {}>".format(self.title) # 作者 class Author(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=16, null=False, unique=True) book = models.ManyToManyField(to="Book") # 多对多关联 Book 表,ORM 会自动生成第 3 张表 def __str__(self): return "<Author object: {}>".format(self.name)
然后执行命令,生成表
会生成两个表
添加字段
这里 id 为 1 的作者写了两本书,id 为 2、3 的作者一起写了一本书