2015-11-11 22 views
5

Perché django bulk_create restituisce oggetti senza pk?Perché django bulk_create restituisce oggetti senza pk?

In [1]: item_list = [Model(title=str(i)) for i in range(10)] 
In [2]: objs = Model.objects.bulk_create(item_list) 
In [3]: print(objs[0].pk) 
None 

In == risultato objs item_list

Cosa c'è sence in questo?

Intendo, questo metodo può restituire un risultato dell'operazione (Vero o Falso o qualcos'altro), non questa raccolta inutile di oggetti che ho già.

risposta

7

Citando il Django doc:

Se la chiave primaria del modello è un AutoField non recuperare e impostare l'attributo chiave primaria, come save() fa.

Secondo django, crea un elenco di record di database in un colpo, ma gli ID degli oggetti non vengono recuperati. Penso che sia positivo per la situazione in cui si eseguono inserimenti di grandi dimensioni senza ulteriore elaborazione dei dati.

Problemi correlati