当前分类:python>>正文

django多对多数据查询小例子

来源:互联网   时间:2022年6月15日   编辑

多对多数据模型是个比较复杂的数据模型,初学的朋友,可能会被这个东西绕晕。

分享这个这个查询小例子,希望可以帮助理解。

 

我们通过下面这个模型类创建了多对多数据库表,并且添加了数据

image

 

接下来,我们进行查询操作

1、正向查询

语法:

author.books.all()

author.books.filter()

我想查某个作者的所有书籍,

比如我查name=gao的这个作者的书籍

author1=author.objects.filter(name=’gao’)

这样就获取到一个objects

接下来查他名下的书

直接使用author1.books.all()查询就会报错

image

为什么?

因为我们使用objects.filter()方法得到的是一个QuerySet,就是查询结果集合。

正确的查询方法如下

author1[0].books.all()

image

 

这样查出来的结果同样是Queryset集合。

我们要查看书名,还需要像下面这样遍历一下

image

 

2、反向查询

通过book来查author,也就是通过书名来查作者

语法:

book.author_set.all()

book.author_set.filter()

比如我想查“糖果屋”这本书的作者是谁

先获取到这本书的objects

b5=Book.objects.filter(title=’糖果屋’)

接下来查询

两种写法

image

注意,这里的author_set中的author一定是小写,如果用大写的话,就会出错。

image

又搞到了深更半夜了。

希望本文 对你有帮助吧。

[猜你喜欢]

标签: 赚钱