天天看点

django create 与 bulk_create

小编只针对自己遇到的问题,来进行讲解,引以为戒

create是针对创建一条新数据。那么我们直接来看代码把

for i in policy:
    if (i.ins_policy_no, i.ins_type)not in no_ins_query:
        NoIncludeInsPolicy.objects.create(
                    top_org_id=request.user.top_org_id,
                    ,,,,,,
            )
           

如果policy里面是有大量的数据,那么create在循环里面 就是没循环一次就要访问一次数据库创建一条数据,这样增加了数据的压力,功能会实现,但是性能不是特别好

所以我们在这里比较适合用bulk_create 针对多条数据批量创建,但是bulk_create 不能用在for循环里面,如果用在for循环里面没有任何意义,

所以我们可以先把循环出来的数据 放到一个列表里,然后在循环的外面在用bulk_create

代码如下

list_ = []

for i in policy:
    if (i.ins_policy_no, i.ins_type) not in no_ins_query:
        list_.append(NoIncludeInsPolicy(
             top_org_id=request.user.top_org_id,
             ,,,,,,,
 
        ))


NoIncludeInsPolicy.objects.bulk_create(list_)