Python appengine Query не работает при использовании переменной - PullRequest
3 голосов
/ 11 марта 2010

Я пытаюсь использовать метод извлечения для извлечения элементов из моего хранилища данных. Если я использую следующее

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 на экран, выглядит хорошо. Я могу вырезать и вставить вставленный вывод в строку, и вот, это работает. Любая помощь будет оценена.

1 Ответ

2 голосов
/ 11 марта 2010

Имеет ли значение, если вы сделаете это:

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

Наиболее вероятная причина проблемы, которую я вижу, состоит в том, что параметр item_id может быть строкой, даже если он содержит числовое значение. Приведите его к int и посмотрите, имеет ли это какое-то значение.

...