Создание отношений "многие-ко-многим" с помощью bulk_create во время чтения файлов

У меня проблемы с архитектурой кода для добавления связей многие-ко-многим при чтении файла и создании новых объектов

models.py

class GS(models.Model):
    name = model.CharField()
    country_code = ManyToMany(Lang)

class Lang(models.Model):
    code
    name

Я читаю файл csv и создаю новые объекты на каждой строке

file.csv

**Name**,**Lang**
name1,US; JP; AU
name2,MX; ID; UA; CZ; ZA; HU; SK
....

Модель Lang уже есть в базе данных.Т.е. мне нужно просмотреть файл и создать новый экземпляр GS и промежуточную модель для связи этого экземпляра со всеми соответствующими объектами Lang.

def handle(self, *args, **options):
    path = path_to 'file.csv'
    df = pd.read_csv(path)
    # set an empty queryset
    lang = Lang.objects.none()
    geo_segment = []
    for i, row in df.iterrows():
        # get list of language code
        lang_code = [c_c.strip(' ') for c_c in row['Lang'].split(';')] ->  [MX, ID, UA, CZ .....]
        # get appropriate Lang objects
        langs = Lang.objects.filter(code__in=lang_code)
        # fulfill lang queryset distinct 
        lang = lang | langs
        segment = GS(name=row['Name'] )
        geo_segment.append(segment)
    # create new GS instancess but without realtions with Lang objects
    GS.objects.bulk_create(geo_segment)

    #SOME NEW LOGIC

И тут я теряюсь, как сделать так, чтобы вновь созданные объекты GS были связаны со всеми соответствующими объектами Lang. В цикле for я не могу этого сделать, потому что MtM-ссылка может быть создана только с уже существующими объектами, а на момент итерации GS еще не сохранен в базе. Может я иду не тем путем, нужна помощь.

Вернуться на верх