Django 还提供了一种直观而高效的方式在查询(lookups)中表示关联关系,它能自动确认 SQL JOIN 联系。要做跨关系查询,就使用两个下划线来链接模型(model)间关联字段的名称,直到最终链接到你想要的model 为止。
核心得学会通知ORM引擎什么时候,join哪张表
join看似复杂,实则最简单。因为把字段列出来之后,就相当于单表操作了!想怎么取值都可以!
正向查询按字段,反向查询按表名小写用来告诉ORM引擎join哪张表
返回值是QuerySet
一对多:
正向查询
返回结构是queryset()
正向查询:关联属性在book表中,所以book对象找关联出版社对象,正向查询
反向查询:关联属性在book表中,所以publish对象找关联书籍,反向查询
按字段:xx
book ------------------ > publish
<--------------------
按表名小写__字段名。比如publish__name
举例:查询西游记这本书的出版社名字
先使用原生sql查询
SELECT app01_publish.name from app01_book INNER JOIN app01_publish on app01_book.publish_id = app01_publish.id WHERE app01_book.title = '西游记'