• ORM--查询类型,关联查询


      ORM框架中,会给每一个模型类中的主键设置一个别名:pk

            models.Projects.objects.filter(id=2)等效于models.Projects.objects.filter(pk=2)

    1.filter()和exclude()查询类型

            exclude()就是filter()的反向查询
            1.1 filter()支持的查询类型:

                    models.模型类名.objects.filter(字段名__查询类型=xxxx)

             补充:

                    filter(id__gt=2)

                    filter(id__gte=2)

                    filter(id__lt=2)

                    filter(id__lte=2)

            1.2 exclude()反向查询    

                    filter()方法支持的查询类型都支持            

    2.关联查询

            当一个模型类中定义了外键时,在给这个模型类对应的表新增数据时,还必须指定将从表新增的数据关联到父表的哪条数据上

            2.1 在Interfaces模型类中定义外键,关联Projects模型类

            2.2 迁移

                    迁移后,Interfaces模型类生成的表中会自动 生成外键:外键名_id

             2.3 外键关联创建

                    方式1:

                            2.3.1 先获取父表模型对象,此处只能用get(),不能用filter(),为何?

                            2.3.2 将获取的父表模型对象以外键字段名作为参数来传递

                    用postman请求后查看interfaces表 

                    

                    方式2:

                            2.3.1 先获取父表模型对象,进而获取父表的id值

                            2.3.2 将父表 主键值 外键名_id 作为参数来传递

             2.4 外键关联查询

                    2.4.1 利用从表数据获取父表数据

                            利用 .父表模型类名小写 获取

                            获取包含注册接口的所有项目信息

                                    Interfaces.objects.filter(name__contains='注册接口').first().projects

                      2.4.2 利用父表数据获取从表数据

                            利用 从表模型类名小写_set 获取                    

                             获取项目leader=jeanet的所有接口信息

                             models.Projects.objects.filter(leader__contains='jeanet')[0].interfaces_set.all()                                

     

  • 相关阅读:
    02-2、PyCharm中文乱码的三处解决方法
    工程机械比例阀电流采集方案
    Snipaste--强大的截图贴图软件--非常实用
    Web前端:2022年Web开发者的五大CSS工具
    基于Django中间件引发的编程思想
    uniapp开发小程序 小米手机真机bottom:0无效 底部间隙 设备安全区域处理办法
    与图相关的一些算法
    格式化数据写入sprintf的用法
    NumPy和Pandas中的广播
    HTML的相关知识
  • 原文地址:https://blog.csdn.net/qq_40132294/article/details/125630675