Django - создайте сразу несколько элементов разных моделей - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть 2 модели с отношением OneToOne между ними.Я хочу создать один экземпляр каждого из них одновременно, чтобы избежать 2 запросов к серверу (который немного медленнее)

class FilePath(models.Model):
    storage_path = models.CharField(max_length=100)
    date_created = ...


class Image(models.Model):
    path = models.OneToOneField(FilePath, on_delete=models.CASCADE)
    width = models.IntegerField()

# I want these queries to be combined to a single server access
file_path = FilePath.objects.create(storage_path=r"/images/1234.jpg")
image = Image.objects.create(path=file_path, width=250)

1 Ответ

0 голосов
/ 06 февраля 2019

Функция bulk_create в Django - это то, что вы ищете.Эта функция принимает массив в качестве аргумента, массив содержит объекты, которые вы хотите сохранить.

Пример:

Image.objects.bulk_create([
    Image(path=gile_path, width=250),
    Image(path=gile_path, width=250),
    Image(path=gile_path, width=250),
])

для получения дополнительной информации прочитайте документы Django по этой функции. bulk_create () .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...