Массовое создание первичного объекта и объектов, ссылающихся на первичный объект одновременно? - PullRequest
0 голосов
/ 19 февраля 2020
class Profile(models.Model):
    pass

class Experience(models.Model):
    profile = models.ForeignKey(Profile)

Как мне сохранить профиль вместе со списком опытов с одной транзакцией?

Сейчас я делаю следующее

p = Profile()
p.save()

e_list = [Experience(profile=p), Experience(profile=p)]
Education.objects.bulk_create(e_list)

Это две базы данных хиты, я могу сделать это в одном?

1 Ответ

1 голос
/ 19 февраля 2020

Используйте transaction.atomic, чтобы иметь несколько запросов в одной транзакции:

from django.db import transaction

with transaction.atomic():
    p = Profile()
    p.save()

    e_list = [Experience(profile=p), Experience(profile=p)]
    Education.objects.bulk_create(e_list)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...