Это самый быстрый способ создать большой список экземпляров модели в Django, которые требуют поиска id для поля ForeignKey?

Модели

class Foo(models.Model):
    name = models.CharField
    # ...

class Bar(models.Model):
    foo = models.ForeignKey(Foo)
    # ...

Является ли это самым быстрым способом создания новых экземпляров Bar, учитывая список имен Foo? Или есть способ использовать имя foo при создании экземпляра Bar?

    to_create = []
    for name in names:
        try:
            foo = Foo.objects.only('id').get(name=name).id
        except Foo.DoesNotExist:
            continue
        to_create.append(Bar(foo=foo, *other_fields))

    Bar.objects.bulk_create(to_create)
Вернуться на верх