我有一个 django 模型,它在保存时会触发在外部服务上创建帐户(与 django 没有任何关系)。不过,为了测试,我想禁止创建此帐户。我可以覆盖管理器的 save() 方法并从那里弹出 kwarg,或者我可以根据 Django 模型中的非数据库字段向模型添加一个非数据库字段属性,并在我的保存方法中检查它。
但是,当我尝试使用 factoryboy 创建对象时,它似乎会检查模型中的真实字段,由于属性不是字段而导致崩溃。
class MyModel(models.Model):
name = models.CharField()
create_external_account = True
def save(self, *args, **kwargs):
if create_external_account:
...
class MyModelFactory(factory.django.DjangoModelFactory):
class Meta:
model = MyModel
name = factory.Sequence(lambda n: 'name%d' % n)
create_external_account = False
关于如何通过 factoryboy 传递诸如此类的额外参数的任何想法?