bug的发现原文 https://www.jianshu.com/p/7f41d73e7f26
将数据库查出的全部数据赋值给一个变量, 再对这个变量进行filter的话,并不是在这个变量值的基础上做操作, 而是重新访问了一次数据库
如果数据库的数据改变, 这个变量的并不会更新, 如果想其进行更新, 在这个变量后面加上一个.all
翻译成代码解释
数据库查出的全部数据赋值给一个变量
queryset = models.Book.objects.all()
再对这个变量进行filter的话, 其实是再次查询了一次数据库, 并不是在这个变量值的基础上做操作,
queryset.filter(pk=pk).first()
此时Book表内容变了, 而queryset 变量值并没有更新
如果想其更新需要这样
queryset.all()
网友评论