App Engine版本1.7.6 old_dev_appserver.py Model.key()。id()未返回正确的id

时间:2013-03-20 22:45:06

标签: google-app-engine

我无法让新dev_appserver正常工作。当我回滚到old_dev_appserver时,我的应用程序在从数据存储区中提取数据时遇到问题,因为model.key().id()似乎没有返回正确的id

有人知道我可能做错了吗?

示例:

查看_ah/admin中的数据存储区时,我可以看到实体已id 5764607523034234880,但调用entitiy_instance.key().id()会返回5188146770730811000

换句话说,调用Model.get_by_id(entity.key().id())会返回None。我相信它应该归还实体。

2 个答案:

答案 0 :(得分:2)

我发现在1.7.5和1.7.6之间发生了一些变化,导致这些long号码被json.stringify()截断。

我通过将long ID转换为str来修复此问题,然后再放入dict进行字符串化。

答案 1 :(得分:1)

1.7.6将默认ID分配从顺序更改为分散,这导致了如此大的ID号和您遇到的问题。有bug registered来解决这个问题。

同时,我对本地开发的建议是手动将ID分配设置回顺序,如here所述(指定自动ID分配策略)