def store_movies(year): print(f'storing-----------{year}') with open(f'./data/movie_{year}.json', 'r') as fp: movies = json.load(fp) # delete stored movies movies_year = Movie.objects.filter(release_date__year=year) movies_year.delete() # using bulk to_db_movies = [] for mv in tqdm(movies): movie = Movie() movie.pk = mv['id'] movie.title_en = mv['original_title'] movie.title_ko = mv['title'] movie.rate = mv['vote_average'] movie.rate_people_count = mv['vote_count'] movie.poster_path = mv['poster_path'] movie.description = mv['overview'] movie.release_date = datetime.datetime.strptime( mv['release_date'], '%Y-%m-%d') to_db_movies.append(movie) div = 100 to_db_movies_batch = [] for i in range(len(to_db_movies) // div + 1): to_db_movies_batch.append(to_db_movies[i * div:(i + 1) * div]) for idx, batch in enumerate(to_db_movies_batch): print(round(idx / len(to_db_movies_batch), 2), end='|') temp = Movie.objects.bulk_create(batch) # add genre mgs = [] for mv in movies: for gid in mv['genre_ids']: mg = MG() mg.movie_id = mv['id'] mg.genre_id = gid mgs.append(mg) temp = MG.objects.bulk_create(mgs)