28.多表查询——跨关联关系的多表查询
Posted 孤寒者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了28.多表查询——跨关联关系的多表查询相关的知识,希望对你有一定的参考价值。
多表查询—跨关联关系的查询
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("插入数据成功!")
❤️可以扫码关注本人公众号——任何问题都可在公众号提问(定时有专人解答);并且不定时更新干货文。欢迎关注哦!❤️
以上是关于28.多表查询——跨关联关系的多表查询的主要内容,如果未能解决你的问题,请参考以下文章