我正在尝试使用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,它的工作原理。任何帮助将不胜感激。
答案 0 :(得分:2)
如果你这样做会有什么不同:
def getItem(item_id):
q = Item.all()
q.filter("itemid = ", int(item_id))
我可以看到问题的最可能原因是item_id参数可能是一个字符串,即使它持有一个数值。将它强制转换为int,看看是否有任何区别。