在批量django中插入数据库

时间:2018-03-19 09:55:35

标签: python-3.x

我有一个包含3个字段的模型:packing_id,multiplier,cost_id。我的数据是 数组中的packing_id和乘数

packing_id = ['1', '2', '3', '4']
multiplier = ['11', '21', '31', '41']
对于这4个条目,

和cost_id将相同。 数据库应如下所示:

packing_id       multiplier   cost_id
1                  11           1
----------------|-----------|-------
2                  21           1
----------------|-----------|-------
3                  31           1
----------------|-----------|-------
4                  41           1
----------------|-----------|-------

如何在不使用for循环

的情况下批量插入Sqlite数据库

1 个答案:

答案 0 :(得分:1)

检查Django' bulk_create https://docs.djangoproject.com/en/2.0/ref/models/querysets/#bulk-create
并使用一些zip魔法https://docs.python.org/3.4/library/functions.html#zip

packing_id = ['1', '2', '3', '4']
multiplier = ['11', '21', '31', '41']
cost_id = [1, 1, 1, 1]
all_columns = zip(packing_id, multiplier, cost_id)

YourModel.objects.bulk_create([
    YourModel(
        packing_id=packing_id,
        multiplier=multiplier,
        cost_id=cost_id,
    )
    for packing_id, multiplier, cost_id in all_columns
])