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 的作者一起写了一本书