如何让FactoryBoy的ImageField在调用save()之前生成图像?

时间:2014-09-12 10:40:38

标签: python django factory-boy

SUBJ。

现在(Factory Boy ver.2.4.1。)使用此代码:

class ImageFactory(factory.django.DjangoModelFactory):
    class Meta:
        model = Image

    image = factory.django.ImageField(width=1024, height=768)

image在保存时为None,因此,如果Image模型已覆盖save并且其image运行,则会失败。这就是我的情况。

那么 - 如何在save调用之前生成图像?

1 个答案:

答案 0 :(得分:10)

我找到了解决方法:

class ImageFactory(factory.django.DjangoModelFactory):
    class Meta:
        model = Image

    image = factory.LazyAttribute(
            lambda _: ContentFile(
                factory.django.ImageField()._make_data(
                    {'width': 1024, 'height': 768}
                ), 'example.jpg'
            )
        )