Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从应用程序引擎数据存储中检索密钥/ID值?_Python_Database_Google App Engine_Google Cloud Datastore - Fatal编程技术网

Python 从应用程序引擎数据存储中检索密钥/ID值?

Python 从应用程序引擎数据存储中检索密钥/ID值?,python,database,google-app-engine,google-cloud-datastore,Python,Database,Google App Engine,Google Cloud Datastore,我在Python应用程序上有一个页面,其中有一个与当前用户关联的位置下拉框,位置名称作为下拉框的可见值。我想做的是允许用户选择其中一个位置,以与其当前位置相关联。当用户添加一个新位置时,它将被创建为该用户的子实体,因此我将按如下方式填充下拉框: locinfo = db.GqlQuery("SELECT * FROM Location WHERE ANCESTOR IS :1", userinfo) …这就是我打算在站点上显示下拉框的方式(我将解释I.key值只是一个占位符) {locinf

我在Python应用程序上有一个页面,其中有一个与当前用户关联的位置下拉框,位置名称作为下拉框的可见值。我想做的是允许用户选择其中一个位置,以与其当前位置相关联。当用户添加一个新位置时,它将被创建为该用户的子实体,因此我将按如下方式填充下拉框:

locinfo = db.GqlQuery("SELECT * FROM Location WHERE ANCESTOR IS :1", userinfo)
…这就是我打算在站点上显示下拉框的方式(我将解释I.key值只是一个占位符)


{locinfo%中的i的%s}
{{i.locname}
{%endfor%}
所以我想做的是在用户记录中添加对一个特定位置实体的引用。在普通的关系数据库中,我会获取每个位置的主键,将它们作为每个选项的值打印出来,并将它们存储在用户记录中,作为对用户当前位置的引用。然而,我环顾四周,并没有发现任何关于检索钥匙的信息,我环顾四周的次数越多,我就越觉得我走错了方向


有什么建议吗?

数据存储中的键由对象表示,而不是简单的值(请参阅)

对于数据存储中的任何实体,请调用其
.key()
方法以获取其键对象,然后可以通过将其转换为字符串来获取可打印的表示形式


您可以在为模板准备数据的视图代码中设置该属性,或者如果您希望能够在模板中调用
i.key
,则可以在该模型类中创建只读属性

webapp中默认使用的Django模板非常适合
{{i.key}
;这将调用
i
.key()
方法,并返回字符串representation.Hmm。怎么样,看起来我一直在做额外的工作。不知道OP的代码对他不起作用是什么……对我起作用了——问题出在我代码的其他地方。但是,我似乎无法在Users表中保存用户的当前位置-我将“lockey”值发布到一个页面,该页面将其分配给用户的当前位置(这是一个db.Key()值),并且它不会出现在数据存储查看器中。当我尝试获取该值时,会出现一个错误,显示为“不完整的密钥”。
<select name="lockey">
    {% for i in locinfo %}
        <option value="{{i.key}}">{{i.locname}}</option>
    {% endfor %}
</select>