Я бы согласился с ответом Дрю как на путь, но если вы застряли со своей схемой или просто хотите изучить другие варианты, вы можете посмотреть, используя Python sets , чтобы найти объединение двух запросы.
name = "The Player"
keys1 = set(Game.all(keys_only=True).filter("player1 =", name))
keys2 = set(Game.all(keys_only=True).filter("player2 =", name))
games = Game.get( list(keys1 | keys2) )
В этом примере будут использоваться 3 вызова / запроса RPC, но только путем извлечения ключей для выполнения объединения, которое вы делаете, быстрее, чем обычные запросы. Однако, в зависимости от того, сколько записей вы фильтруете, вы можете найти его быстрее без запроса только ключей и использовать более простую проверку, например
games1 = Game.all().filter("player1 =", name)
games2 = Game.all().filter("player2 =", name)
games = games1+filter(lambda x:x not in games1,games2)