Это самый быстрый способ создать большой список экземпляров модели в 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)