Google AppEngine告诉我我的int不是int
||
代码的相关部分:
pk = int(pk)
logging.info(\'pk: %r :: %s\', pk, type(pk))
instance = models.Model.get_by_id(int(pk))
上面的日志消息的输出
pk: 757347 :: <type \'int\'>
堆栈跟踪:
Traceback (most recent call last):
File \"/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/__init__.py\", line 634, in __call__
handler.get(*groups)
File \"/base/data/home/apps/<myapp>/<version>/scrape.py\", line 61, in get
instance = models.Model.get_by_id(int(pk))
File \"/base/python_runtime/python_lib/versions/1/google/appengine/ext/db/__init__.py\", line 1212, in get_by_id
return get(keys[0], config=config)
File \"/base/python_runtime/python_lib/versions/1/google/appengine/ext/db/__init__.py\", line 1434, in get
model = cls1.from_entity(entity)
File \"/base/python_runtime/python_lib/versions/1/google/appengine/ext/db/__init__.py\", line 1350, in from_entity
instance = cls(None, _from_entity=True, **entity_values)
File \"/base/python_runtime/python_lib/versions/1/google/appengine/ext/db/__init__.py\", line 890, in __init__
prop.__set__(self, value)
File \"/base/python_runtime/python_lib/versions/1/google/appengine/ext/db/__init__.py\", line 593, in __set__
value = self.validate(value)
File \"/base/python_runtime/python_lib/versions/1/google/appengine/ext/db/__init__.py\", line 2967, in validate
% (self.name, type(value).__name__))
BadValueError: Property pk must be an int or long, not a unicode
有人知道我在这里做错了吗?
注意:从代码的最后一行删除ѭ3并没有区别(这是第一个版本)。
同样,代码在dev_appserver.py
上运行也没有问题。
没有找到相关结果
已邀请:
3 个回复
bab
氏脑
从SDK
创建自己的琐碎验证器,尝试将字符串解析为int。 最终,您可能希望在所有这些实体上应用一个映射器,以使它们全部进入当前架构。 验证者在ѭ7内被称为 因此该值应准备好在适当的时候用作int值。 验证器示例
该代码尚未经过测试。
奥李
批量加载程序的yaml文件中的属性定义。