2014-09-12 71 views
2

Subj。如何在調用save()之前使FactoryBoy的ImageField生成圖像?

眼下(廠男孩版本2.4.1。)使用此代碼:

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

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

imageNone在保存時,因此,如果Image模型具有save覆蓋及其與image工作,它會失敗。這就是我的情況。

那麼 - 如何在save之前調用圖像生成?

+0

添加您的解決辦法作爲一個答案,而不是。這會讓其他人更容易找到:) – Jonathan 2014-09-12 11:44:58

回答

7

我已經找到了解決辦法:

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' 
      ) 
     ) 
相關問題