これはコードです:
def create_game(user_id):
game = classes.Games(user_id = user_id)
game.put()
def get_game(user_id):
game_query = classes.Games.gql('WHERE user_id = :1', user_id)
game = False
for item in game_query:
game = item
if not game:
create_game(user_id)
get_game(user_id)
else:
return game
def render_page(self):
message = 'this is a game page<br>'.decode('utf-8')
user = creditentials.get_user(self)
if not user:
self.redirect('/')
return
game = get_game(user.key().id())
message += 'current game ID: '.decode('utf-8') + str(game.key().id())
self.response.write(message)
ゲームのインスタンスを 1 つだけ作成することを期待していますが、10 個作成するのではありません! どうやら GQL クエリは非同期的に実行され、行get_game(user_id)
をスキップするだけの 3 番目 (?) のインスタンスから開始しますgame_query = classes.Games.gql('WHERE user_id = :1', user_id)
。
私は正しいですか?どうすればこれを回避できますか?