美文网首页
QuerySet对象值赋给变量后, 变量需要更新值的问题

QuerySet对象值赋给变量后, 变量需要更新值的问题

作者: aq_wzj | 来源:发表于2018-12-14 20:27 被阅读0次

bug的发现原文 https://www.jianshu.com/p/7f41d73e7f26
将数据库查出的全部数据赋值给一个变量, 再对这个变量进行filter的话,并不是在这个变量值的基础上做操作, 而是重新访问了一次数据库
如果数据库的数据改变, 这个变量的并不会更新, 如果想其进行更新, 在这个变量后面加上一个.all

翻译成代码解释

数据库查出的全部数据赋值给一个变量
queryset = models.Book.objects.all() 


再对这个变量进行filter的话, 其实是再次查询了一次数据库, 并不是在这个变量值的基础上做操作,
queryset.filter(pk=pk).first()

此时Book表内容变了, 而queryset 变量值并没有更新
如果想其更新需要这样
queryset.all()

相关文章

  • QuerySet对象值赋给变量后, 变量需要更新值的问题

    bug的发现原文 https://www.jianshu.com/p/7f41d73e7f26将数据库查出的全部数...

  • 2018年9月11日.NET笔试面试题

    值类型和引用类型的区别?将一个值类型变量赋给另一个值类型变量时,将复制包含的值。引用类型变量的赋值只复制对对象的引...

  • 关于变量和数值

    关于变量“把值存储在变量中” 的意思是 把一个值赋给一个变量,它会存储在内存中‘=’ 符号用来将一个值赋给一...

  • JS之变量、作用域和内存

    变量及作用域 1、基本类型和引用类型的值ECMAScript 变量:基本类型值和引用类型值。将一个值赋给变量时,解...

  • Python 学习笔记 - 变量

    Python 变量 创建变量 变量是存储值的容器。Python 里没有专门的命令来声明变量。当把一个值赋给一个变量...

  • 从零学swift-基本类型

    常量let和变量var let 常量 定义:被赋初始值后不能再被赋值。 var 变量定义:被赋初始值后可以再被赋值...

  • php把函数作为参数传递!

    传递资源作为参数: 传递函数作为参数调用: 函数作为值赋给变量打印结果 函数赋值并调用,把结果当做值赋给变量 函数...

  • 关于assign的一个bug

    一个类A的接口数据 我前缀为 assign变量 这时候另外一个controller将值赋给了A的变量后,发生问题 ...

  • 那些年成为node攻城狮的路(四)

    ECMAScript 变量,ECMAScript包含两种数据类型的值:基本类型值和引用类型值,在将一个值赋给变量时...

  • 《Head First Python》Ch2: 处理有序数据

    Python中所有一切都是对象(数字、字符串、函数、模块等),而所有对象都可以赋给变量,变量会去取所赋的那个值的类...

网友评论

      本文标题:QuerySet对象值赋给变量后, 变量需要更新值的问题

      本文链接:https://www.haomeiwen.com/subject/yulnhqtx.html