Stavo leggendo su Django bulk_create e alcuni dei suoi "difetti":Utilizzando Django bulk_create oggetti in chiavi esterne?
"
This has a number of caveats though:
1. The model's save() method will not be called, and the pre_save and post_save signals will not be sent.
2. It does not work with child models in a multi-table inheritance scenario.
3. If the model's primary key is an AutoField it does not retrieve and set the primary key attribute, as save() does.
"
non ho capito appieno. Quindi, se ho un elenco di oggetti, passare in bulk_create:
objList = [a, b, c,] #none are saved
model.objects.bulk_create(objList)
Potrei continuare a utilizzare questi oggetti in chiavi esterne belle?
for obj in objList:
o = otherModel(something='asdfasdf', fkey=obj)
o.save() # will this be fine given the caveats stated above?
Così sarà ok la relazione ForeignKey? Anche quando dice 2. Non funziona con modelli figlio in uno scenario di ereditarietà multi-tavolo, significa che qualsiasi modello che eredita da un altro modello (astratto o non) non può utilizzare bulk_create?
Quindi, come gestirò le relazioni con le chiavi esterne? Dovrei interrogare il database per selezionare gli oggetti che ho appena inserito? – Derek
Probabilmente dovresti evitare "bulk_create" nel tuo caso. Basta creare gli oggetti individualmente. –
Quindi, come si consiglia di gestire i problemi di prestazioni con singoli salvataggi? – Derek