Python NDB实体的密钥ID自定义

时间:2017-04-03 09:21:04

标签: python google-app-engine

我需要向Android发送ID,但ID最多为9个字符。当我使用urlsafe和密钥的ID时,它不可能,因为它的长度超过9个字符。 你有什么建议吗?此ID将由Android发回以检索实体

1 个答案:

答案 0 :(得分:0)

您可以尝试使用最多9个字符的自定义字符串作为这些对象的键ID。您必须特别注意确保他们对于没有父母或同一父母的实体唯一

可能还必须确保它们不仅仅是数字,GAE可以将其解释为一个整数(可能被认为太小了密钥ID,由自动生成的数字密钥ID的正常长度判断)。对这个不太确定,我没试过。

这样的事情:

    entity = EntityModel.get_or_insert('AShortOne')
    logging.info(entity.key.id()) # should show 'AShortOne'
    logging.info(EntityModel.get_by_id('AShortOne')) # should show your entity