我的模型看起来像这样:
class ProjectImage(models.Model):
big_thumb = ThumbnailField(upload_to='profiles', size=(500, 500))
med_thumb = ThumbnailField(upload_to='profiles', size=(300, 300))
small_thumb = ThumbnailField(upload_to='profiles', size=(100, 100))
我将ProjectImage与Project关联为TabularInline。在管理员中,我想能够说明如果没有提供中等和/或小缩略图,请使用与大缩略图相同的图像。但是,我很难弄清楚如何指定这种行为。
答案 0 :(得分:1)
在这种情况下,您有两种选择,您可以覆盖ProjectImage
的保存定义,并将其big_thumb
复制到med_thumb
和small_thumb
无,或只是创建一个简单的模型定义来显示每个字段。
def get_med_thumb_url(self):
if self.med_thumb is None:
return self.big_thumb.url
return self.med_thumb.url
为small_thumb
执行相同操作,这样可以防止您使用保存方法,并且不得不复制内容并浪费空间。
我不记得ImageField
是否有get_FOO_url
类型的定义,但如果确实如此,你总是可以超越它。