首页 > 其他分享 >基于对象的跨表查询(正向反向)

基于对象的跨表查询(正向反向)

时间:2023-11-29 18:35:23浏览次数:39  
标签:author models publish 查询 跨表 book 反向 print 正向

# 跨表查询有两种方式
    -基于对象的跨表查询:子查询
    -基于双下划线的跨表查询:关联查询,连表查询
    
    
# 基于对象的跨表查询
    -查询主键为1的书籍的出版社所在的城市
    
    # 基于对象的跨表查询(子查询)
    # 一对多
    # 查询主键为1的书籍的出版社所在的城市
    # book=models.Book.objects.get(id=1) # 第一次查询
    # # book=models.Book.objects.filter(id=1).first()
    # publish=book.publish  # 内部又执行了一次查询,根据publish_id查询publish
    # print(publish.addr)
    # 北京出版社出版的所有书籍
    # publish=models.Publish.objects.get(name='北京出版社')  # 第一次查询了出版社
    # books=publish.book_set.all()    # 表名小写_set     # 第二次,根据出版社id,查询所有书
    # print(books)
    # 正向查询:book表内有publish字段 直接对象.字段名
    # 反向查询:publish表内没有book字段,出版社对象.Book小写_set.all()
    ### 一对一
    # 查询所有住址在山东的作者的姓名
    # 反向查询:author_detail没有author字段,author_detail.表明小写
    # author_detail=models.AuthorDetail.objects.filter(addr__contains='山东').first()
    # # 反向
    # print(author_detail.author.name)
    # 查询egon作者的地址
    # 正向
    # author=models.Author.objects.get(name='egon')
    # print(author.author_detail.addr)
    # 多对多关系查询
    #西游记所有作者的名字以及手机号
    # book=models.Book.objects.get(name='西游记')
    # # 正向
    # authors=book.authors.all()
    # for author in authors:
    #     print(author.name)
    #     print(author.author_detail.phone)
    # 反向 查询egon出过的所有书籍的名字
    # egon=models.Author.objects.get(name='egon')
    # books=egon.book_set.all()
    # for book in books:
    #     print(book.name)
    

标签:author,models,publish,查询,跨表,book,反向,print,正向
From: https://www.cnblogs.com/97zs/p/17865560.html

相关文章

  • 基于双下划线的跨表查询 进阶连续跨表查询
    基于双下划线的跨表查询:#连表查询#基于对象的跨表查询,先查对象,通过对象再去查另一个对象(正向:字段名,反向:表名小写/表名小写_set.all())#地址为山东的作者写的所有书#author_detail=models.AuthorDetail.objects.get(addr='山东')#author=author_detail.autho......
  • 反向建图+拓扑排序
    反向建图+拓扑排序零、复习拓扑排序\(HDU\)\(3342\)\(Legal\)\(or\)\(Not\)【正图,普通拓扑排序】题意:给出\(n\)人的编号为\(0\)到\(n-1\),再给出\(m\)个关系。\(A\)和\(B\),\(A\)是\(B\)的老师。问这些关系是否存在矛盾,即不能存在\(A\)是\(B\)的老师,\(B\)是\(C\)的老师,而\(C\)......
  • 神经网络入门篇之深层神经网络:详解前向传播和反向传播(Forward and backward propagati
    深层神经网络(DeepL-layerneuralnetwork)复习下前面的内容:1.逻辑回归,结构如下图左边。一个隐藏层的神经网络,结构下图右边:注意,神经网络的层数是这么定义的:从左到右,由0开始定义,比如上边右图,\({x}_{1}\)、\({x}_{2}\)、\({x}_{3}\),这层是第0层,这层左边的隐藏层是第1层,由此类推......
  • nginx配置文件服务器及反向代理
    nginx配置文件服务器及反向代理最终配置如下:worker_processes1;events{worker_connections1024;}http{server{listen8888;add_header'Access-Control-Allow-Origin''*';server_nameexample.com;loc......
  • 7-Bioedit软件做测序后的序列比对和序列的反向互补与翻译
     1,我有两段序列,一段是基因组提取出来的CDS序列,一段是PCR出来的测序的序列,我们需要将它们比对,看看有没有碱基的变化。这时候就需要用到Bioedit软件了。首先,将两端待比对的序列,放到记事本中,要fasta格式,做个例子,如下: 2,选中全部,CTRL+C,先复制。再打开Bioedit软件,File>NewAlignm......
  • 30. 干货系列从零用Rust编写正反向代理,HTTP的组装之旅(中间件)
    wmproxywmproxy已用Rust实现http/https代理,socks5代理,反向代理,静态文件服务器,四层TCP/UDP转发,七层负载均衡,内网穿透,后续将实现websocket代理等,会将实现过程分享出来,感兴趣的可以一起造个轮子项目地址国内:https://gitee.com/tickbh/wmproxygithub:https://github.com/......
  • Cobalt Strike之反向上线操作
    前言CobaltStrike使用GUI框架SWING(一种javaGUI的库)开发,攻击者可通过CS木马在beacon元数据中注入恶意HTML标签,使得CobaltStrike对其进行解析并且加载恶意代码(类似XSS攻击),从而在目标系统上执行任意代码。实现原理攻击者需要通过CS木马在beacon元数据中注入恶意paylo......
  • 神经网络入门篇:直观理解反向传播(Backpropagation intuition)
    详细推导反向传播下图是逻辑回归的推导:回想一下逻辑回归的公式(参考公式1.2、公式1.5、公式1.6、公式1.15)公式1.38:\[\left. \begin{array}{l} {x}\\ {w}\\ {b} \end{array} \right\} \implies{z={w}^Tx+b} \implies{\alpha=\sigma(z)} \implies{{L}\left(a,y......
  • 无名分组 有名分组 反向解析
    无名:"""分组:就是给某一段正则表达式用小括号扩起来"""url(r'^test/(\d+)/',views.test)deftest(request,xx):print(xx)returnHttpResponse('test')#无名分组就是将括号内正则表达式匹配到的内容当作位置参数传递给后面的视图函数 有名:可以给正则表达式起一个别......
  • 多表查询(跨表查询) 子查询 链表查询 正反向查询概念 聚合查询 分组查询 F查询和Q查询
    昨日内容回顾模板之变量所有的数据类型都可以在模板中使用render(request,'index.html',context={''})render(request,'index.html',context=locals())"""在模板中使用变量的时候,用的是字典的key值,key值value值一般保持一致"""模板之过滤器类似于函数,函数才可以传递参......