首页 > 其他分享 >django的 prefetch_related 只能 all() 可以用 filter ?

django的 prefetch_related 只能 all() 可以用 filter ?

时间:2023-01-19 09:22:05浏览次数:51  
标签:set author somethings related django filter prefetch

直接说答案
  • <= Django 1.6 只能在使用代码过滤

somethings = Foo.objects.filter(author="author").prefetch_related("bar_set")
for a in somethings:
somebars = [p for p in a.bar_set.all() if p.format == 1]



* Django 1.6  >= Prefetch()对象
```
somethings = Foo.objects.filter(author="author").prefetch_related(
    Prefetch(
        "bar_set",
        queryset=Bar.objects.filter(format=1),
        to_attr="some_bars"
    )
)
for a in somethings:
    somebars = a.some_bars
```

标签:set,author,somethings,related,django,filter,prefetch
From: https://www.cnblogs.com/guanchaoguo/p/17061058.html

相关文章

  • Django一个“高质量”小白的学习之路(给自己看)
     第一天day1:人类的思维倾向于直白、视觉和线性,还有好奇心,这是祖先遗传下来的思维习惯。如果论结果,显然我是一个计算机学习的失败者。因为我作为一个已经刚到不惑之年......
  • django model 创建表参数字段
    首先,关于model,是数据库与python代码里的一个映射关系,每一个model是django.db.models.Model的一个子类。model里每一个属性值(即字段)代表数据库的字段,通过定义mode......
  • Django[二] 创建一个新的项目
    IDE:PyCharm2021.3.1(ProfessionalEdition)1.在开始界面中创建一个NewProject  如果是专业版(可能需要安装完Django),可以看到这个Django选项。  创建完成......
  • Django[一]安装和配置
    日期:2023年1月18日python版本:python3.10.0Django版本:4.1.51.pip安装:在安装完Python并配置完环境变量的提前下,在cmd窗口直接执行:pipinstalldjango   2.验......
  • Django一个“高质量”小白的学习之路
    人类的思维倾向于直白、视觉和线性,还有好奇心,这是祖先遗传下来的思维习惯。如果论结果,显然我是一个计算机学习的失败者。因为我作为一个已经刚到不惑之年的中年男子,还在......
  • django-rest-swagger
    Swagger是一个API开发者的工具框架,用于生成、描述、调用和可视化RESTful风格的Web服务。总体目标是使客户端和文件系统服务器以同样的速度来更新,方法,参数和模型紧密集成到......
  • Django接入Swagger,生成Swagger接口文档-操作解析
        Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。总体目标是使客户端和文件系统源代码作为服务器以同样的速度来更新。当......
  • vue的自定义过滤器 - Filter
    vue的自定义过滤器-Filter一、过滤器的介绍二、局部过滤器1.定义2.使用2.1基础用法2.2串联用法2.3接收参数三、全局过滤器1.定义2.使用四、总结一、过滤器的介绍V......
  • django4.1版本小demo
    1.安装anoconda,创建虚拟python3.9环境2.安装django,pipinstalldjango-i清华源安装较快3.新建一个django项目django-adminstartprojectdemo14.创建单个或者多......
  • 基于Django的全栈个人博客
    基础但完整的三个DjangoFullstackBlog项目这三个用的都是基础的Django全栈,没有做前后端分离。前两个有完整教程,第三个教程无,但有redis缓存,后续可以三个对照着相互补充。......