У меня странная проблема с парой запросов, которые я пытаюсь запустить.
Я построил метод, который возвращает кортеж результата из запроса-
def get_activeproducts():
query = Product.gql("WHERE active = True")
choices = []
for obj in query:
choices.append((str(obj.key()), obj.name))
return choices
Проблема в том, что результат одинаков для каждого вызова. Даже если товары удалены или изменены на «False» в атрибуте товара «active». Результат будет обновлен только при перезапуске сервера SDK. В производстве он просто не меняется, пока я не изменю версии.
Я видел похожую проблему с еще одним запросом, где свойство запроса имеет тип BooleanProperty.
Есть идеи, как это можно исправить?
EDIT:
Я использую метод в приложении tipfy. Он используется для заполнения поля выбора в wtforms. 'Choices' в основном принимает список пар кортежей (value, name).
class InvoiceForm(Form):
product = SelectField('Product', choices=get_activeproducts())
У меня нет проблем с редактированием. Когда я проверяю это со стороны администратора, я вижу, что для некоторых продуктов установлено значение «Ложь». И даже если я очищаю (удаляю) весь список товаров, я получаю тот же список, что и в первый раз.
Я нигде не использую кеширование в приложении.