28.多表查询——跨关联关系的多表查询

28.多表查询——跨关联关系的多表查询多表查询—跨关联关系的查询**Django提供一种强大而又直观的方式来“处理”查询中的关联关系,它在后台自动帮你处理JOIN。若要跨越关联关系,只需使用关联的模型字段的名称,并使用双下划线分隔,直至你想要的字段:**上实战训练——更直观理解:(得到的都是QuerySet型数据!)fromdjango.httpimportHttpResponsefrom.modelsimportDepartment,Student,Course,Stu_detaildefadd_u

大家好,又见面了,我是你们的朋友全栈君。

多表查询—跨关联关系的查询

Django 提供一种强大而又直观的方式来“处理”查询中的关联关系,它在后台自动帮你处理JOIN。 若要跨越关联关系,只需使用关联的模型字段的名称,并使用双下划线分隔,直至你想要的字段:

上实战训练——更直观理解:

(得到的都是QuerySet型数据!)

from django.http import HttpResponse

from .models import Department, Student, Course, Stu_detail


def add_user(request):
    # 1.查询学院名为‘北大’的学生的信息 (注意是两个下划线,可以获取到其对应的属性)
    s_all = Student.objects.filter(department__d_name='北大')
    print(s_all)

    # 它还可以反向工作。若要引用一个“反向”的关系,只需要使用该模型的小写的名称!!!

    # 2.查询学生名字中包含'小'的学生的学院信息
    d_all = Department.objects.filter(student__s_name__contains='小')
    print(d_all)

    # 3.查询学号为1的学生的所有的课程
    c_all = Course.objects.filter(student__s_id=1)
    print(c_all)

    # 4.查询报了课程3的所有学生
    stu_all = Student.objects.filter(course__c_id=3)
    print(stu_all)

    # 5.查询报了'python'课程的学生的所属学院的信息
    cou_all = Department.objects.filter(student__course__c_name='python')
    print(cou_all)

    return HttpResponse("插入数据成功!")

❤️可以扫码关注本人公众号——任何问题都可在公众号提问(定时有专人解答);并且不定时更新干货文。欢迎关注哦!❤️

请添加图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138196.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 架构设计(1)-谈谈架构

    架构设计(1)-谈谈架构1、什么是架构和架构本质在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这个世界的基础,并用来沟通的手段,如果对架构概念理解不一样,那沟通起来自然不顺畅。Linux有架构,MySQL有架构,JVM也有架构,使用Java开…

    2022年7月11日
    30
  • js中判断对象是否为空

    js中判断对象是否为空1.es6中可以使用Object.keys(obj)vardata={};vararr=Object.keys(data);alert(arr.length==0);//true为空,false不为空2.将json对象转化为json字符串,再判断该字符串是否为"{}"vardata={};varb=(JSON.stringify(data)==…

    2022年6月14日
    25
  • 排序二叉树及其Java实现[通俗易懂]

    排序二叉树及其Java实现[通俗易懂]定义排序二叉树的定义也是递归定义的,需要满足:(1)若它的左子树不为空,则左子树上所有节点的值要均小于根节点的值;(2)若它的右子树不为空,则右子树上所有节点的值要均大于根节点的值;(3)左、右子树也分别是排序二叉树如下图,对于排序二叉树,若按中序遍历就可以得到由小到大的有序序列。创建创建排序二叉树的步骤就是不断像排序二叉树中添加新节点(p)的过程:(1)以根节

    2022年7月25日
    13
  • 程序员面临的困难和挑战_突破困境的故事

    程序员面临的困难和挑战_突破困境的故事偶然在网上看到这样一个故事:John和Bill一起到山中探险,忽然他们发现一只老虎正深情的望着他们,John撒腿就要跑,Bill却迅速的从背包里拿出一双跑鞋穿在脚上,John看到后气急败坏的对说Bill“你穿什么鞋也跑不过老虎的”Bill同情的看了他一眼,回答说“我干吗要和老虎比,我只要跑过你就够了。”大笑以后不免想起John的境遇是不是有点象中国的程序员呢?我个人习惯把软件从业人员分为初级程

    2022年10月11日
    2
  • 查看项目安装的webpack版本

    查看项目安装的webpack版本如何查看项目的webpack版本解决方法:在package中”webpack”:”^3.6.0″,只知道项目使用的webpack的版本号大于3.6.0,所以执行以下命令即可看到项目正在使用的版本号命令可参考:http://www.yayihouse.com/yayishuwu/chapter/2731…

    2022年8月10日
    43
  • 延迟复工,待岗期间工资怎么发?在家上班工资咋算?

    延迟复工,待岗期间工资怎么发?在家上班工资咋算?

    2022年2月12日
    83

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号