我已经用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()