Массовое создание объектов модели в django

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

С помощью django я могу создать все экземпляры моделей с помощью MyModel (data) , а затем хочу сохранить их все.

В настоящее время у меня есть что-то подобное:

for item in items:
    object = MyModel(name=item.name)
    object.save()

Мне интересно, могу ли я сохранить список объектов напрямую, например:

objects = []
for item in items:
    objects.append(MyModel(name=item.name))
objects.save_all()

Как сохранить все объекты в одной транзакции?

78
задан Sнаđошƒаӽ 24 April 2016 в 08:37
поделиться

2 ответа

для однострочной реализации вы можете использовать лямбда-выражение в карте

map(lambda x:MyModel.objects.get_or_create(name=x), items)

Здесь лямбда сопоставляет каждый элемент в списке элементов с x и при необходимости создает запись в базе данных.

Документация Lambda

2
ответ дан 24 November 2019 в 10:38
поделиться

Проще всего использовать метод create Manager, который создает и сохраняет объект за один шаг.

for item in items:
    MyModel.objects.create(name=item.name)
-18
ответ дан 24 November 2019 в 10:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: