gpt4 book ai didi

python - Django 1.4 - 带有列表的 bulk_create

转载 作者:太空狗 更新时间:2023-10-29 20:34:09 24 4
gpt4 key购买 nike

我有一个列表,我想在数据库中为其批量创建条目。

如何在不循环遍历列表的情况下执行此操作,我认为这会消除 bulk_create 的意义。

例如:

而不是...

for x in list:
bulk_create...

我怎么能...

bulk_create for the entire list at once in an efficient manner

列表包含:

list = ['abc', 'def', 'ghi']

它只是一个 id 列表,而不是以准备好直接输入 bulk_create 的形式(不使用输入字段格式化)。但是,我认为可以在将列表传递给 bulk_create 之前对其进行修改。

最佳答案

bulk_create 在单个调用中将对象列表作为单个 arg。您在示例中所做的与循环和执行相同 create()

引用:https://docs.djangoproject.com/en/dev/ref/models/querysets/#django.db.models.query.QuerySet.bulk_create

aList = [
Entry(headline="Django 1.0 Released"),
Entry(headline="Django 1.1 Announced"),
Entry(headline="Breaking: Django is awesome")
]
Entry.objects.bulk_create(aList)

aList 指的是您已经实例化并需要通过一次查询批量创建的对象列表。例如,如果您还没有未保存实例的列表,并且您有一个值列表,那么您可以使用类似的内容创建您的列表:

values = ['abc', 'def', 'ghi']
# a list of unsaved Entry model instances
aList = [Entry(headline=val) for val in values]

或者您可能有一个映射到模型的原始字典值列表:

values = [{headline="abc"}, {headline="def"}, {headline="ghi"}]
aList = [Entry(**vals) for vals in values]

关于python - Django 1.4 - 带有列表的 bulk_create,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10691359/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com