我已经用force=False重写了模型中的Save方法,如何使用factoryboy模拟Django模型?

我已经用force=False重写了模型中的Save方法,如何使用factoryboy模拟Django模型?,django,factory-boy,Django,Factory Boy,例如,请参见下面的代码: class Thing(Model): def save(force=False, *args, **kwargs): if not force: raise Exception("don't save!") FactoryBoy调用model.get\u或\u create(),后者调用model.save()。有没有办法在FactoryBoy中创建此模型的实例而不修改保存或获取或创建方法?如果您只需要Django模

例如,请参见下面的代码:

class Thing(Model):
    def save(force=False, *args, **kwargs):
        if not force:
             raise Exception("don't save!")

FactoryBoy调用model.get\u或\u create(),后者调用model.save()。有没有办法在FactoryBoy中创建此模型的实例而不修改保存或获取或创建方法?

如果您只需要Django模型的本地实例,则应使用。此外,创建策略调用
\u create
,可以覆盖该策略以满足您的需要。

如果您只需要Django模型的本地实例,则应使用。另外,创建策略调用
\u create
,可以覆盖它以满足您的需要。

工厂.django.DjangoModelFactory的默认行为是调用
MyModel.objects.create()

如果目标只针对一个测试中的单个调用,只需使用
MyModelFactory.build()

如果目标是从不调用
create()
,请在声明中设置以下内容:

class MyModelFactory(factory.django.DjangoModelFactory):
  class Meta:
    model = models.MyModel
    strategy = factory.BUILD_STRATEGY

这将
MyModelFactory()
映射到
MyModelFactory.build()
而不是
DjangoModelFactory
默认值,
MyModelFactory.create()

工厂.django.DjangoModelFactory的默认行为是调用
MyModel.objects.create()

如果目标只针对一个测试中的单个调用,只需使用
MyModelFactory.build()

如果目标是从不调用
create()
,请在声明中设置以下内容:

class MyModelFactory(factory.django.DjangoModelFactory):
  class Meta:
    model = models.MyModel
    strategy = factory.BUILD_STRATEGY
这将
MyModelFactory()
映射到
MyModelFactory.build()
而不是
DjangoModelFactory
默认值,
MyModelFactory.create()