Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用django多态创建多个对象_Python_Django_Django Models - Fatal编程技术网

Python 使用django多态创建多个对象

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,

我正在使用一个基类,它包含大约8个派生类。它工作得很好,但当我试图一次创建多个对象时除外,在这种情况下,性能非常差。我的代码如下所示:

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用于其他地方:) 享受