Хранилище данных Google App Engine не поддерживает оператор +
-
21-08-2019 - |
Вопрос
Я играю с GAE, и мне нужно сделать запрос примерно такого типа:
select from models.Post as p where (p.votesUp + p.votesDown > 10)
Но я получаю эту ошибку: Хранилище данных App Engine не поддерживает оператор +
Какой подход может быть хорошим для замены этого запроса?
Решение
Очевидная вещь, которая бросается в глаза, — это поместить в p метод, имеющий p.netVotes, и выполнить запрос к нему.
Но я недостаточно знаком с App Engine (я только начал его изучать), чтобы быть уверенным, что это работает.
Другие советы
Это похоже на проблему с счетчики в движке приложения.Самое простое решение, которое пришло мне в голову, — добавить атрибут voicesTotal, который обновляется каждый раз, когда обновляются voicesUp и voicesDown.Таким образом, при запросе voicesTotal > foo_val не требуется больших вычислений.