GQL不适用于键的GET参数

问题描述 投票:0回答:2

我正在尝试比较在Python中使用GQL过滤结果的键,但直接比较或类型转换为int都可以。因此,我不得不按照下面未注释的行所述进行变通。有任何线索吗?

row = self.request.get("selectedrow")
#mydbobject = DbModel.gql("WHERE key=:1", row).fetch(1)
#mydbobject = DbModel.gql("WHERE key=:1", int(row)).fetch(1)#invalid literal for int()   with base 10
#print mydbobject,row

que = db.Query(DbModel)
results = que.fetch(100)
mydbobject = None
for item in results:
if item.key().__str__() in row:
    mydbobject = item

EDIT1-再次尝试不检索记录,该键与记录一起存在于数据存储区中mydbobject = DbModel.gql(“ WHERE键= KEY('%s')”%row).fetch(1)

python google-app-engine gqlquery
2个回答
1
投票

我是否假设您基本上只是想检索具有特定键的对象?如果是这样,get and get_by_id methods可能会有帮助:

mydbobject = DbModel.get_by_id(int(self.request.get("selectedrow")))

0
投票

错误“ int()的无效文字”表示传递给int的参数不是表示整数的字符串。尝试打印“ row”的值进行调试,我敢打赌它是一个空字符串。

从键中检索元素的正确方法只是使用方法“ get”或“ get_by_id”。您的情况:

row = self.request.get("selectedrow")
mydbobject = DbModel.get(row)
© www.soinside.com 2019 - 2024. All rights reserved.