天天看點

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_)