2009-11-04 124 views
1

我有一个模型,看起来像这样:Django管理在线FORMSET覆盖保存

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

我有一个项目作为TabularInline关联ProjectImage。在管理员中,我希望能够说出是否未提供中等缩略图和/或小缩略图,请使用与缩略图相同的图像。不过,我很难弄清楚如何指定这种行为。

回答

1

你必须在这种情况下两个选择,你可以在骑ProjectImage的保存确定指标并将其复制到big_thumbmed_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类型的定义,但如果它确实如此,你总是可以忽略它。

+0

即使它是内嵌表单,我仍然可以重写ProjectImage的保存方法吗? – btoconnor 2009-11-04 13:55:38

+0

我不明白为什么不。它仍然需要保存。 :) – Bartek 2009-11-04 13:59:17