我尝试运行的几个查询有一个奇怪的问题。
我已经构建了一个方法,它从查询中返回一个结果元组-
def get_activeproducts():
query = Product.gql("WHERE active = True")
choices = []
for obj in query:
choices.append((str(obj.key()), obj.name))
return choices
问题是,每次调用的结果都是相同的。即使产品被删除或在产品属性“活动”中更改为“假”。只有当我重新启动 sdk 服务器时才会刷新结果。在生产中,它只是在我更改版本之前不会改变。
我在另一个查询中看到了类似的问题,其中查询属性是 BooleanProperty。
关于如何解决这个问题的任何想法?
编辑:我在一个小费应用程序中使用该方法。它用于填充 wtforms 中的选择字段。'choices' 基本上接受元组(值,名称)对的列表。
class InvoiceForm(Form):
product = SelectField('Product', choices=get_activeproducts())
我对编辑没有任何问题。当我从管理员端检查时,我可以看到某些产品设置为“假”。即使我清空(删除)整个产品列表,我也会得到与第一次相同的列表。
我没有在应用程序的任何地方使用缓存。