orm查询
基于对象的查询(子查询)
1.一对一
正向就是建立关系的那个字段在次表中,向没有建立关系的那个字段的表查询
反向则反之
正向:正向查询按字段
author=Author.objects.filter(name='lqz').first().authordetail.phone
反向:反向查询按表名小写
authordetail=AuthorDetail.objects.filter(addr='山东').first().author.name
2.一对多
正向:正向查询按字段
book=Book.objects.filter(name='红楼梦').first().pulish.email
反向:反向按表名小写加_set
Publish.objects.filter(addr='北京').first().book_set.all()
3.多对多
正向:正向查询按字段
#查询红楼梦这本书所有的作者
book=Book.objects.filter(name='红楼梦').first().authors.all()
反向:反向按表名小写加_set
# 查询lqz写的所有书
lqz=Author.objects.filter(name='lqz').first().book_set.all()
多表联查(基于双下划线的查询)
1.一对一
正向:正向查询按字段
ret=Author.objects.filter(name='lqz').values('authordetail__phone')
反向:按表名小写
ret=AuthorDetail.objects.filter(author__name='lqz').values('phone')