如何覆盖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_create
是Manager
该类的方法,并且SomeModel.objects
是的实例Manager
。您需要子类化Manager
并覆盖那里的方法,然后将管理器添加到SomeModel
:
class SomeModelManager(models.Manager):
def bulk_create(self, objs, batch_size=None, ignore_conflicts=False):
...
class SomeModel(models.Model):
objects = SomeModelManager()
有关更多信息,请参见有关自定义管理器的文档。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句