繁体   English   中英

Django覆盖bulk_create

[英]Django override bulk_create

如何覆盖bulk_create方法? 我试试这个

class SomeModel(models.Model):
    field = models.CharField()

    def bulk_create(self, objs, batch_size=None):
        #do something
        return super(SomeModel, self).bulk_create(objs, batch_size)

但它不起作用。 当我运行此代码时

SomeModel.objects.bulk_create(objects_list)

它创建了新对象,但它不使用我的覆盖bulk_create方法。 是否可以覆盖bulk_create? 如何?

bulk_createManager类的一个方法, SomeModel.objectsManager一个实例。 您需要子类化Manager并在那里覆盖该方法,然后将管理器添加到SomeModel

class SomeModelManager(models.Manager):
    def bulk_create(self, objs, batch_size=None, ignore_conflicts=False):
        ...

class SomeModel(models.Model):
    objects = SomeModelManager()

有关更多信息,请参阅自定义管理器文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM