Python 使用django多态创建多个对象
我正在使用一个基类,它包含大约8个派生类。它工作得很好,但当我试图一次创建多个对象时除外,在这种情况下,性能非常差。我的代码如下所示:Python 使用django多态创建多个对象,python,django,django-models,Python,Django,Django Models,我正在使用一个基类,它包含大约8个派生类。它工作得很好,但当我试图一次创建多个对象时除外,在这种情况下,性能非常差。我的代码如下所示: class Parent(PolymorphicModel): ... class DerivedA(Parent): ... class DerivedB(Parent): ... @transaction.commit_on_success def create_objects() for model_class in (DerivedA,
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()
我也尝试过使用Parent.objects.bulk\u create
,但这对多态django不起作用,因为它只创建基本对象,而不是子对象。当我尝试对每个子模型使用bulk\u create
时,它会引发ValueError(“无法批量创建继承模型”)
有没有更有效的方法来创建许多多态对象?这是在django admin中实现的
models.py
class BuildScript(models.Model):
fields ...bla bla
class POLY_BuildScript(BuildScript):
class Meta:
verbose_name = "POLY"
fields...bla bla
admin.py
#just after the imports (func stands alone)
def save_with_parent_fields(obj):
obj.build = obj.pbuild
obj.branch = obj.pbranch
return obj
class BuildScriptAdmin(admin.ModelAdmin):
def save_model(self, request, obj, form, change):
obj.executer = request.user.userprofile
obj.save()
class POLY_BuildScriptAdmin(BuildScriptAdmin):
def save_model(self, request, obj, form, change):
save_with_parent_fields(obj)
obj.executer = request.user.userprofile
obj.save()
func返回的obj用于其他地方:)
享受