除了我生成的key_name
之外,我还希望有一些其他属性,它们将作为id(我不想向用户显示key_name
)。可以id
吗?或者,如何生成唯一值而不是id
?
我将做什么 - 我将生成一个使用该ID和父键名称的URL。如果用户点击此链接,我将需要找到此数据存储区实体并进行更新。
这是当前的代码。
创建记录:
item = Items.get_by_key_name(key_names=user_id, parent=person)
if item is None:
item = Items(key_name='id'+user_id, parent=person)
获取记录:
item = Items.get_by_key_name(key_names=user_id, parent=person)
user_id
应隐藏。
答案 0 :(得分:3)
我可能错了,因为您的要求不明确,但对我来说,您应该使用以下方法将密钥传递给视图:
item.key()
然后你可以将密钥传回控制器并轻松地检索给定的实体:
item = Items.get(key)
答案 1 :(得分:3)
实体只有一个密钥名称或ID - 从不两者兼而有之。您可以使用指向目标实体的单个ReferenceProperty创建一个实体,并使用其ID作为标识符,但实际上没有理由不向用户显示关键名称 - 一个编写良好的应用程序不应该依赖于此值保密。
请注意,从字符串编码密钥中提取密钥名称(以及有关密钥的其余信息)非常容易。