在Google App Engine中使用子过滤器/查询

时间:2010-02-10 13:50:52

标签: python google-app-engine

我正在尝试使用弄清楚如何子查询使用过滤器的查询。从我到目前为止使用.filter()时所发现的,它改变了原始查询,导致第二个.filter()也必须匹配第一个过滤器。

我想做这样的事情:

modules = data.Modules.all().filter('page = ', page.key())
modules.filter('name = ', 'Test')
modules.filter('name = ', 'Test2')

我无法让“Test2”过滤器工作。我目前唯一的解决方案是进行所有新查询。

data.Modules.all().filter('page = ', page.key()).filter('name = ', "Test").get()
data.Modules.all().filter('page = ', page.key()).filter('name = ', "Test2").get()

或者像GQL一样写。但对我而言,接缝非常愚蠢。

我看过使用祖先,但我不太明白它,老实说,不知道是不是这样。

有什么想法吗?

..弗雷德里克

1 个答案:

答案 0 :(得分:3)

您尝试执行的操作似乎是OR查询,App Engine不支持。您可以使用IN查询,通过为您执行多个查询来模拟此问题。

你尝试的第一件事不起作用的原因是你试图过滤你的查询,以便你的结果与“测试”和“测试2”相匹配,这对于非列表属性显然永远不会成立

相关问题