raj*_*jpy 3 python google-app-engine app-engine-ndb google-cloud-datastore
我有一个基于ndb的模型,在保存它的同时,我使用当前登录用户的用户ID存储了'id'字段.(为什么我这样做?实际上这个模型过去基于db.Model而key_name有这个用户的id.现在,我将它转换为ndb)
m= Modelclass(id = str(users.get_current_user().used_id()),
--- Other fields ---
m.put()
Run Code Online (Sandbox Code Playgroud)
这个模型的编辑表单发送了这个'id',我希望从中得到相应的'key'.但是,我得到"密钥ID号太长;收到'一些big_number'".试过两种方式
Modelclass.get_by_id(<id>).key
Run Code Online (Sandbox Code Playgroud)
要么
ndb.Key('Modelclass', <id>)
Run Code Online (Sandbox Code Playgroud)
这是一种情况,可能存在用户可以在"id"字段中存储一些大数字的其他情况.在这些情况下,我们无法从"id"中提取密钥.那么,如何解决这样的问题.
我是ndb的新手.谢谢你的帮助.
看起来你的值是一个int,而不是一个字符串.但是在创建权利时,您将其转换为字符串.有一个简单的解决方案:
ndb.Key('Modelclass', str(<id>))
Run Code Online (Sandbox Code Playgroud)
祝好运!