美文网首页
Django 的多表操作(基于下划线的跨表查询)

Django 的多表操作(基于下划线的跨表查询)

作者: wangcc_sd | 来源:发表于2019-03-26 16:52 被阅读0次

基于双下划线的跨表查询

正向查询按字段,反向查询按表名小写

查询金瓶梅这本书的出版社的名字

---------------正向查询--------------

    #基于下划线的跨表查询
ret = Book.objects.filter(title='金瓶梅').values("publish__name")
print(ret)

-------------------反向查询------------

ret = Publish.objects.filter(book__title='金瓶梅').values("name")
print(ret)

个人觉得 在基于下划线的反向查询中,反向查询时更加容易理解。

查询金瓶梅这本书所有的作者名字

#通过book表join与其关联的author表
##方式一
ret = Book.objects.filter(title='追风筝的人').values("authors__name")
print(ret)
#方式2
ret = Author.objects.filter(book__title='追风筝的人').values('name')
print(ret)

查询alex 的手机号

--------------一对一查询-----------------
ret= Author.objects.filter(name='alex').values("authorDetail__telephone")
print(ret)

阶段总结

表与表、字段与字段之间,如果存在关联关系的话 ,可直接用双下划线语法进行查询。

连续跨表查询

手机号以911开头的作者出版过的所有书籍名称以及出版社名称

    ret = Book.objects.filter(authors__authorDetail__telephone__regex='911').values_list('title',"publish__name")
    print(ret)

---需要补充 【related_name】的概念及例子

相关文章

  • 2018-12-26

    ORM:双下划线 1) 基于双下划线的单标条件查询 2) 基于双下划线的跨表查询 Django 还提供了一种直观而...

  • Django 的多表操作(基于下划线的跨表查询)

    基于双下划线的跨表查询 正向查询按字段,反向查询按表名小写 查询金瓶梅这本书的出版社的名字 -----------...

  • Python ORM 语句

    单表操作 多表操作(一对多): 多表操作(多对多): -------了不起的双下划线(__)之单表条件查询 ---...

  • Django模型层之多表操作(四)

    基于双下划线的跨表查询 Django 还提供了一种直观而高效的方式在查询(lookups)中表示关联关系,它能自动...

  • 09_ORM单表操作

    ORM单表操作 一、数据迁移命令: 二、添加表纪录 方式一: 方式二: 三、查询表纪录 查询API 基于双下划线的...

  • 多表查询 子查询

    多表查询 连接查询:也可以叫跨表查询,需要关联多个表进行查询 笛卡尔集:select * from student...

  • Oracle基础总结

    Oracle开发基础重点 Oracle一般操作 表空间 用户 表 表数据 Oracle 查询操作 单表查询 多表查...

  • 第19天,Django之ORM进阶续

    目录 models.py文件内容如下 以下所有查询及操作均基于此models.py实现 一、 基于对象的跨表查询 ...

  • MySQL入门练习:多表查询

    本次多表查询操作如下数据:学生信息表student 学生成绩表score 多表查询1: 显示员工的工资等级 显示每...

  • Django模型(四)

    Django模型 知识点: 表关联对象 多表查询 表关联对象 前向查询 如果一个模型具有ForeignKey,那么...

网友评论

      本文标题:Django 的多表操作(基于下划线的跨表查询)

      本文链接:https://www.haomeiwen.com/subject/xwogvqtx.html