美文网首页
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对象值赋给变量后, 变量需要更新值的问题

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