我有以下模型:
class Room(models.Model):
order = models.SmallIntegerField()
name = models.CharField(max_length=20)
background = models.ImageField(upload_to='room_background', blank=False, null=False)
background_preview = ImageSpecField(source='background', processors=[ResizeToFit(300, 400)])
def serialize(self):
room_dict = model_to_dict(self)
room_dict['background_preview_url'] = self.background_preview.url
return room_dict
我没有直接在我的视图上使用房间对象,而是将它们转换为 dict,使用 'background_preview_url' 键进行扩展。
现在我想编写一些 Django 测试,使用序列化的房间对象。问题是,如果我这样做:
test_room = Room(order=1)
test_room.save
test_room.serialize()
ImageKit 抛出 MissingSource 错误,因为我的测试室中没有背景图像可以从中生成预览。
我如何在测试中更好地克服这一点?我应该携带带有背景图像的固定装置吗?或者我应该写第二个 serialize_for_test() 方法?或者也许我可以用 background_preview 字段的一些测试值来实例化 Room()?- 我试过了,但直接 Room(background_preview='fake_url') 不起作用。
谢谢。