Django bulk_create列表列表

时间:2016-09-08 19:45:33

标签: python django

正如标题所示,有没有办法批量创建列表列表。就像现在我一样批量创建它 -

for i in range(len(x))   
  arr1 = []
    for m in range(len(y)):
    arr1.append(DataModel(foundation=foundation, date=dates[m], price=price[m]))
  DataModel.objects.bulk_create(arr1)

现在这将批量创建,直到x的长度。

可以这样做 -

arr = []
for i in range(len(x))   
  arr1 = []
    for m in range(len(y)):
    arr1.append(DataModel(foundation=foundation, date=dates[m], price=price[m]))
  arr.append(arr1)
DataModel.objects.bulk_create(arr)

如果没有,还可以采取哪些措施来更快地存储数据?

2 个答案:

答案 0 :(得分:0)

将您的对象追加到arr,而不是arr1 或者您可以在bulk_create

之前制作单位清单
import itertools
arr = list(itertools.chain(*arr))

答案 1 :(得分:0)

试试这个......

arr = []
for i in range(len(x))   
  arr1 = []
    for m in range(len(y)):
    arr1.append(DataModel(foundation=foundation, date=dates[m], price=price[m]))
  #instead of appending the list, add list together to make one
  arr = arr + arr1
DataModel.objects.bulk_create(arr)

这将生成一个可由bulk_create()方法

处理的项目列表

参考:Python append() vs. + operator on lists, why do these give different results?