在google appengin中,基于键(唯一标识符)进行选择

2024-10-01 07:35:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我又有了


""" A site message """
class Message( db.Model ) :
  # from/to/ a few other fields
  subject = db.StringProperty()
  body = db.Text()

  sent = db.DateTimeProperty( auto_now_add=True )

现在我正试着用它的键来找出一条信息。我在前面保存了这个键,并将它植入了一个HTML表单中。结果是一个类似于

^{pr2}$

然后我运行这个GQL查询:

gql = """select * from Message where __key__='aght52oobW1hZHIOCxIHTWVzc2FnZRiyAQw'"""

但它不起作用,因为

BadFilterError: BadFilterError: invalid filter: __key__ filter value must be a Key; received aght52oobW1hZHIOCxIHTWVzc2FnZRiyAQw (a str).

这里我完全遗漏了一些东西,那就是如何将对象放入GQL查询字符串中。。而不是Gql解析器抱怨它是一个字符串吗?


Tags: tokey字符串frommessagedbmodelsite
2条回答

不必为基于键的检索而使用GQL从字符串中创建一个key对象:

k = db.Key('aght52oobW1hZHIOCxIHTWVzc2FnZRiyAQw')

只要db.get(k)。{如果不合适的话,{cdw>>:1或其他方式)。在

也可以通过构造“an entity key literal, with...a complete path of kinds and key names/IDs”手工构造查询。在

SELECT * FROM Message WHERE __key__ = KEY('Message', 'message_key')

如果您使用的是datastoreviewer/Explorer而不能使用Python语法,这将更加有用。在

相关问题 更多 >