在查询过滤时,我看到App Engine的本地 devserver 出现了一些奇怪的行为。
我已经实施了这个Sharded Counter。
http://code.google.com/appengine/articles/sharding_counters.html
这就是我所看到的:
调试后,我注意到应该与我想要计数的GeneralCounterShard实体匹配的查询与提供的名称不匹配。
def get_count(name):
"""Retrieve the value for a given sharded counter.
Parameters: name - The name of the counter """
total = memcache.get(name)
if total is None:
total = 0
for counter in GeneralCounterShard.all().filter('name = ', name):
total += counter.count
memcache.add(name, total, 60)
return total
因此,当 具有数据库中提供的名称的GeneralCounterShard实体时,上面代码中的过滤器不匹配任何内容。
我必须说我是App Engine和Python的新手,但是我不明白为什么这会工作片刻然后它不再存在了。实体仍在数据库中。
这可能是某种错误还是我错过了什么?
谢谢!
答案 0 :(得分:1)
在这个片段中:.filter('name =',name)我认为你需要删除=后的空格。