Создание отношений "многие-ко-многим" с помощью 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 еще не сохранен в базе. Может я иду не тем путем, нужна помощь.