def create_player(user, game, players): """Create and return player. only return player if he is already created :param user: user who will be related to player :param game: game what will be related to player :return: Player object """ players = players.order_by('in_game_order') player = players.filter(user=user).first() if player is None: player = Player(user=user, name=user.username, game=game, chips=GameSerializer(game).data['starting_chips'], is_in_game=True) else: player.is_in_game = True # set player in_game_order if len(players) < 1: player.in_game_order = 1 else: player.in_game_order = players.reverse()[0].in_game_order + 1 # update number of connected players game.players_connected = len(players) game.save() player.save() return player.id