3

我有一个基于 ndb 的模型,在保存它时,我用当前登录用户的用户 ID 存储了“id”字段。(我为什么要这样做?实际上这个模型曾经是基于 db.Model 和 key_name 有这个用户的 id。现在,我将它转换为 ndb)

m= Modelclass(id = str(users.get_current_user().used_id()),
      --- Other fields ---
m.put()

该模型的编辑表单发送此“id”,我想从中获取相应的“密钥”。但是,我得到“密钥 ID 号太长;收到‘一些 big_number’”。两种方式都试过

Modelclass.get_by_id(<id>).key 

或者

ndb.Key('Modelclass', <id>)

这是一种情况,可能还有其他情况,用户可以在“id”字段中存储一些大数字。在这些情况下,我们无法从“id”中提取密钥。那么,如何解决这样的问题。

我是ndb的新手。谢谢你的帮助。

4

1 回答 1

6

看起来你的值是一个 int,而不是一个字符串。但是您在创建实体时将其转换为字符串。有一个简单的解决方案:

ndb.Key('Modelclass', str(<id>))

祝你好运!

于 2013-05-28T15:40:41.623 回答