我正在做一个NDB查询,它似乎只是获取一个部分对象。对于模型,我已经关闭了缓存,以防万一。但是,当我可以看到它们填充在数据存储区查看器中时,许多属性将返回None。
这是本地开发服务器(并已部署),查询由后端进程完成。
注意:清除内存缓存没有帮助。
注意:如果我使后端重新启动,它将开始下拉正确的数据。
基本上:
后端开始每X秒查询一次模型实例
前端导致对模型实例的更改
后端继续查看实例的原始版本,直到重新启动
后端代码非常简单:
while 1:
time.sleep(2)
q = None
res = None
q = core.Agent.query()
res = q.fetch(10)
for a in res:
logging.error("%s" % a.to_dict())
前端更改了一些属性(并在查看器中显示),但后端只显示旧值。看起来Filter似乎会根据正确的值进行过滤,但fetch()会返回旧的东西。
答案 0 :(得分:1)
您需要清除循环顶部的上下文缓存,例如
while 1:
ndb.get_context().clear_cache()
<rest of your code>