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

标签 python django factory-boy

主题。

现在(Factory Boy 版本 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 调用之前生成图像?

最佳答案

我找到了解决方法:

from django.core.files.base import ContentFile

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'
            )
        )

关于python - 如何让 FactoryBoy 的 ImageField 在调用 save() 之前生成图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25806428/

相关文章:

使用pytz的python时区转换问题

python - Django:客户端与流断开连接后清理redis连接

python - 如何使用 factory_boy 为 MongoEngine EmbeddedDocument 建模?

python - 重写_create类方法

Python将.dcm转换为.png,图像太亮

python - 从 Qt Designer 将键盘快捷键分配给 QLineEdit

python - 从 Python 中的素因子列表创建所有可能的因式分解

Django - 将表单集中的 BooleanField 显示为一组单选按钮

factory-boy - 有没有办法让 FactoryBoy 将参数传递给我的 Django 模型的 save() 方法?

python - 如何从行中获取数据到元组中