Транзакция не имеет ничего общего с тем, как организованы данные, это особая операция базы данных. Внутри транзакции вы можете выполнять несколько операций чтения и записи, и все это успешно или неудачно. Ограничение состоит в том, что все затронутые объекты должны быть в одной группе. Если бы вы использовали транзакции, вы бы знали, что это так: поиск данных команды не делает транзакцию.
Если ваши игроки используют эталонное свойство для указания команды, вы запросите это в GQL, где WHERE team=KEY('Team', <id>)
, <id>
- идентификатор объекта команды. Кроме того, вы можете сделать это:
for player in team.player_set:
# iterating over the players in the team...
Когда у вида Player есть свойство ссылки на вид Team, команды автоматически получают эту коллекцию player_set (ну, на самом деле это запрос), которую вы можете повторять. Это называется "обратная ссылка"