如何在实体中使用谷歌用户ID - python appengine

kha*_*any 2 python google-app-engine jinja2

我创建一个像这样的实体:

company = dbDatafile(usOwner = user)
company.name = self.request.get("name")
company.put()
Run Code Online (Sandbox Code Playgroud)

其中user是Google用户帐户.现在当我尝试搜索该用户时:

datafiles = dbDatafile.gql("WHERE usOwner = '%s'" % user.user_id())
Run Code Online (Sandbox Code Playgroud)

分配给jinja2模板var:

template_values = {
    'datafiles': datafiles
}
Run Code Online (Sandbox Code Playgroud)

并输出到html:

{% for datafile in datafiles %}
    >>>{{ datafile.name }}         chevrons to indicate any looping
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

我没有输出.

数据存在于管理仪表板中,但我无法访问它.有任何想法吗?

谢谢

Dan*_*man 5

如果usOwner是UserProperty,则需要USER()在GQL中使用:

datafiles = dbDatafile.gql("WHERE usOwner = USER(:1)", user.email())
Run Code Online (Sandbox Code Playgroud)

还记得总是使用占位符,而不是字符串插值 - 只是因为它不是SQL,并不意味着它不易受注入攻击.