jql不适用于获取键的参数

时间:2009-06-09 16:32:00

标签: python google-app-engine gqlquery

我试图比较在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 = KEY('%s')”%row).fetch(1)

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

从密钥中检索元素的正确方法是使用方法“get”或“get_by_id”。 在你的情况下:

row = self.request.get("selectedrow")
mydbobject = DbModel.get(row)