Добавление объекта в базу данных без вызова функции сохранения

Я хотел бы узнать, возможно ли добавить объект в базу данных без вызова save().

            foo = Foo.objects.create(
                #fields
            )

            lst_bars = []
            for bar in MyModel.objects.filter(
                #fields
            ):
                lst_bars.append(Bar(
                    foo_id=foo.id,
                    # fields
                ))

            Bar.objects.bulk_create(lst_bars)

            foo.save()

В этом коде я создаю Foo, затем использую его id в качестве ссылки при создании Bar. После массового создания всех объектов Bar я вызываю функцию foo save.

В foo save() я вызываю каждый бар save(), затем агрегирую данные всех баров и заполняю поля Foo.

В общей сложности метод save вызывается два раза, но в create() я хотел бы просто создать без сохранения, чтобы не производить вычисления, когда нет данных.

Я нашел способ вызывать сохранение и не производить вычисления:

def save(self, *args, **kwargs):
    self.full_clean()
    just_created = True if not self.id else False
    if not just_created:
        # make calculations
    super().save(*args, **kwargs)

Буду благодарен, если кто-нибудь знает, возможно ли добавить объект в базу данных без вызова save другим способом (без необходимости изменения метода save).

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