2016-09-08 4 views
0

Wie der Titel angibt, gibt es eine Möglichkeit, Liste der Listen bulk_create. Wie im Moment ich bulk_create es gerne -Django bulk_erstellen Sie eine Liste von Listen

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) 

Jetzt wird dies bis zu der Länge von x Bulk erstellen.

Kann es wie so getan werden -

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) 

Wenn nicht, was sonst noch getan werden kann, um Daten zu speichern schneller?

Antwort

0

Hängen Sie Ihr Objekt an arr an, nicht an arr1.
Oder Sie können flache Liste machen, bevor bulk_create:

import itertools 
arr = list(itertools.chain(*arr)) 
0

Try this ....

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) 

dies eine einzige Liste der Elemente prozess können durch bulk_create() Verfahren produzieren

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

+0

Dies funktioniert, aber nicht wirklich schnell Dinge. – ThatBird

Verwandte Themen