【问题标题】:Getting key from the id of the entity using Appengine's NDB使用 Appengine 的 NDB 从实体的 id 获取密钥
【发布时间】:2013-05-28 13:39:59
【问题描述】:

我有一个基于 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 的新手。感谢您的帮助。

【问题讨论】:

    标签: python google-app-engine google-cloud-datastore app-engine-ndb


    【解决方案1】:

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

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

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-04
      • 2013-01-05
      • 2012-12-27
      • 1970-01-01
      • 2011-11-01
      • 2012-10-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多