从应用引擎数据存储中检索键/ID值?
我在我的Python应用程序中有一个页面,上面有一个下拉框,里面列出了当前用户相关的地点,地点的名称就是下拉框中显示的内容。我想让用户可以从这些地点中选择一个,来关联他们的当前位置。当用户添加一个新地点时,这个地点会作为该用户的子项创建,所以我这样填充下拉框:
locinfo = db.GqlQuery("SELECT * FROM Location WHERE ANCESTOR IS :1", userinfo)
...接下来我打算在网站上显示这个下拉框(i.key的值只是个占位符,稍后我会解释)。
<select name="lockey">
{% for i in locinfo %}
<option value="{{i.key}}">{{i.locname}}</option>
{% endfor %}
</select>
我想做的是在用户记录中添加一个特定地点的引用。在普通的关系型数据库中,我会获取每个地点的主键,把它们作为每个选项的值打印出来,然后在用户记录中存储这些值,以此来指向用户的当前位置。不过我查了一下,似乎没有找到关于如何获取这个主键的信息,越查我越觉得自己可能走错了方向。
有什么建议吗?
1 个回答
2
在数据存储中,键是用对象来表示的,而不是简单的值(详细信息可以查看这里)。
对于数据存储中的任何实体,你可以调用它的 .key()
方法来获取它的键对象,然后通过将其转换为字符串来获取可打印的表示。
你可以在准备数据的视图代码中设置这个,方便模板使用;或者如果你想在模板中直接调用 i.key
,你可以在那个模型类中创建一个只读属性。