开发者

Python appengine Query does not work when using a variable

开发者 https://www.devze.com 2022-12-22 20:51 出处:网络
I am trying to use a fetcher method to retrieve items from my datastore.If I use the following def getItem(item_id):

I am trying to use a fetcher method to retrieve items from my datastore. If I use the following

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

It fails because nothing is returned. If I hard code in an item like

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

it fetches just fine, and sings merrily along. I have tried every which way to get this to work. I have u开发者_如何学Gosed

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

to the same effect. If I hard code in a number, works fine. I have tried setting the select statement as a local string, assembling it that way, casting the int as a string, and nothing. When I output the SELECT statement to the screen, looks fine. I can cut ans paste the output into the string, and whammo, it works. Any help would be appreciated.


Does it make any difference if you do this:

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

The most likely cause of the problem that I can see is that the item_id parameter may be a string even though it is holding a numerical value. Coerce it to an int, and see if that makes any difference.

0

精彩评论

暂无评论...
验证码 换一张
取 消