Używam klasy django-polymorphic i klasy bazowej z około 8 klas pochodnych. Działa świetnie, z wyjątkiem sytuacji, gdy próbuję utworzyć wiele obiektów naraz, w tym przypadku wydajność jest bardzo niska. Mój kod wygląda następująco:Tworzenie wielu obiektów przy użyciu django-polimorficznego
class Parent(PolymorphicModel):
...
class DerivedA(Parent):
...
class DerivedB(Parent):
...
@transaction.commit_on_success
def create_objects()
for model_class in (DerivedA, DerivedB...):
instance = model_class(...)
instance.save()
Ja również próbowałem przy użyciu Parent.objects.bulk_create
, ale to nie działa dobrze z polimorficznych-django, bo to właśnie tworzy obiekt bazowy i nie obiektów podrzędnych. Kiedy próbuję użyć bulk_create
każdego z modeli podrzędnych, powstaje ValueError("Can't bulk create an inherited model")
.
Czy istnieje skuteczniejszy sposób tworzenia wielu polimorficznych obiektów?