import os import django from django.db import transaction os.environ.setdefault("DJANGO_SETTINGS_MODULE", "server.settings") django.setup() from server.models import ( Game, Guild, Player, PlayerGameProfile, WowProfile, ValorantProfile, PlayerGuild, ) def populate_games(): games = ["World of Warcraft", "Valorant"] for game in games: g = Game.objects.get_or_create(name=game)[0] def populate_guilds(): guilds = ["Gamers", "Epic Nerds"] for guild in guilds: g = Guild.objects.get_or_create(name=guild)[0] def populate_players(): players = ["Pixel", "Zman", "Skip"] for player in players: p = Player.objects.get_or_create(name=player)[0] def populate_player_guilds(): player_guilds = [ {"player": "Pixel", "guild": "Gamers"}, {"player": "Zman", "guild": "Gamers"}, {"player": "Skip", "guild": "Epic Nerds"}, ] for profile in player_guilds: p = PlayerGuild.objects.get_or_create( player=Player.objects.get(name=profile["player"]), guild=Guild.objects.get(name=profile["guild"]), )[0] def populate_player_game_profiles(): player_game_profiles = [ {"player": "Pixel", "game": "World of Warcraft"}, {"player": "Zman", "game": "World of Warcraft"}, {"player": "Skip", "game": "Valorant"}, {"player": "Skip", "game": "World of Warcraft"}, ] for profile in player_game_profiles: p = PlayerGameProfile.objects.get_or_create( player=Player.objects.get(name=profile["player"]), game=Game.objects.get(name=profile["game"]), )[0] def populate_wow_profiles(): wow_profiles = [ {"player": "Pixel", "level": 60, "class_name": "Mage"}, {"player": "Zman", "level": 60, "class_name": "Warrior"}, {"player": "Skip", "level": 60, "class_name": "Rogue"}, ] for profile in wow_profiles: p = WowProfile.objects.get_or_create( player_game_profile=PlayerGameProfile.objects.get( player=Player.objects.get(name=profile["player"]), game=Game.objects.get(name="World of Warcraft"), ), level=profile["level"], class_name=profile["class_name"], )[0] def populate_valorant_profiles(): valorant_profiles = [{"player": "Skip", "rank": "Diamond"}] for profile in valorant_profiles: p = ValorantProfile.objects.get_or_create( player_game_profile=PlayerGameProfile.objects.get( player=Player.objects.get(name=profile["player"]), game=Game.objects.get(name="Valorant"), ), rank=profile["rank"], )[0] def populate(): with transaction.atomic(): populate_games() populate_guilds() populate_players() populate_player_game_profiles() populate_wow_profiles() populate_valorant_profiles() if __name__ == "__main__": print("Populating script!") populate() print("Population complete!")