Django bulk_create,同时填充ImageField

时间:2017-04-18 13:08:11

标签: python django django-models

我正在尝试bulk_create来自某些原始解析API数据列表的Person个对象列表。 数据包含:

  • 编号
  • 注释
  • 图像

       person = raw_api_data[0]
       obj = Person(
            id=person['id'],
            comment=person['comment'],
        )
    
        if person['image'] is not None:
            obj.image.save(
                '.jpg',
                ContentFile(person['image'].decode('base-64')),
                save=False,
            )
    new_persons.append(obj)
    
    Person.objects.bulk_create(new_persons)
    

我希望能够避免在bulk_create失败的情况下在文件系统上创建本地图像文件。 (例如IntegrityError

有没有办法避免在创建过程本身之前创建文件本身,同时还能够使用图像批量创建所有对象?

除了在将对象本身附加到批量列表之前创建内容文件之外,我没有找到任何其他想法。

1 个答案:

答案 0 :(得分:0)

要回答你的问题,不。如果您希望您关注大量批量列表,请尝试使用批处理的概念,每隔500个项目批量插入一次。但是,在进行批量创建时,您将始终必须更新列表。