Python appengine Query在使用变量时不起作用

时间:2010-03-11 19:34:25

标签: python google-app-engine google-cloud-datastore

我正在尝试使用fetcher方法从我的数据存储中检索项目。如果我使用以下

def getItem(item_id):
    q = Item.all()
    q.filter("itemid = ", item_id)

失败,因为没有返回任何内容。如果我在

这样的项目中进行硬编码
def getItem(item_id):
    q = Item.all()
    q.filter("itemid = ", 9000)
它取得的很好,并愉快地唱着。我已经尝试了各种方法来实现这一点。我用过

result = db.GqlQuery("SELECT * FROM Item WHERE item_id = :1 LIMIT 1",
    title).fetch(1)

达到同样的效果。如果我在一个数字硬编码,工作正常。我已经尝试将select语句设置为本地字符串,以这种方式组装,将int作为字符串转换,什么都没有。当我将SELECT语句输出到屏幕时,看起来很好。我可以剪切ans粘贴输出到字符串,并且whammo,它的工作原理。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

如果你这样做会有什么不同:

def getItem(item_id):
    q = Item.all()
    q.filter("itemid = ", int(item_id))

我可以看到问题的最可能原因是item_id参数可能是一个字符串,即使它持有一个数值。将它强制转换为int,看看是否有任何区别。