Django有提供三种数据模型,一种是一对一的,一种是一对多的,一种是多对多的。
本篇文章,主要通过小例子来给大家认识一下django中的多对多数据模型。
我们来看下面这个例子
首先,执行以下指令,创建一个应用
django-admin startapp ebooks
接下来,咱们在models.py中建两个数据类
一个是Book,另一个是Author
最后一个类中有一句books=models.ManyToManyField(Book)
这句话,意思就是建立多对多的数据级联关系。
接下来我们需要执行数据表的迁移和创建
python manage.makemigrations
python manage.py migrate
完成这两步后,我们可以看到数据库中生成了三张表。
其他表,都是系统默认创建的,不用管。
接下来,我们在django的Shell模式下,添加数据库数据。
执行下面语句,进入pyhton shell 模式
python manage.py shell
接下来我们做的事情。
导入模型
from ebooks.models import *
然后新建两本书
一本书,名称为python,一本为django
然后为这两本书添加同一个作者wang
反过来,我们也可以像下面这样做
先创建一个作者
然后这个作者有写了两本书,我们添加到他名下
注意语法格式。
后面这两句话,使用的小写的books这个单词,实际上就是一开始创建ManyToManyFiled数据模型关联时候的那个单词,是没有限制的,你也可以换成其他的单词。
之后,我们看下数据库有什么变化
可以看到book_id为2、3的是同一个作者author_id,后面book_id为4、5的为同一个author_id
想要更好的了解这个多对多数据模型,建议自己动手尝试一下哦。
标签: