Использование подфильтров / запросов в Google App Engine - PullRequest
1 голос
/ 10 февраля 2010

Я пытаюсь понять, как выполнить подзапрос запроса, который использует фильтр. Из того, что я выяснил до сих пор при использовании .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 Ответ

3 голосов
/ 10 февраля 2010

Похоже, что вы пытаетесь сделать запрос OR, который не поддерживается в App Engine. Вы можете использовать запрос IN, который имитирует это, выполняя несколько запросов за вас.

Причина, по которой первое, что вы попробовали, не работает, заключается в том, что вы пытаетесь отфильтровать свой запрос так, чтобы ваши результаты соответствовали как "Test", так и "Test2", что, очевидно, никогда не будет истинным для свойства, не входящего в список. .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...