Django的。覆蓋模型的保存在保存模型之前,我會重新調整圖片大小。但是,如何檢查是否添加了新圖片或更新了描述,以便每次保存模型時都可以跳過重新縮放?class Model(model.Model):
image=models.ImageField(upload_to='folder')
thumb=models.ImageField(upload_to='folder')
description=models.CharField()
def save(self, *args, **kwargs):
if self.image:
small=rescale_image(self.image,width=100,height=100)
self.image_small=SimpleUploadedFile(name,small_pic)
super(Model, self).save(*args, **kwargs)我想僅在新圖像加載或圖像更新時重新縮放,但在更新描述時不重新縮放。
3 回答

守著星空守著你
TA貢獻1799條經驗 獲得超8個贊
一些想法:
class Model(model.Model): _image=models.ImageField(upload_to='folder') thumb=models.ImageField(upload_to='folder') description=models.CharField() def set_image(self, val): self._image = val self._image_changed = True # Or put whole logic in here small = rescale_image(self.image,width=100,height=100) self.image_small=SimpleUploadedFile(name,small_pic) def get_image(self): return self._image image = property(get_image, set_image) # this is not needed if small_image is created at set_image def save(self, *args, **kwargs): if getattr(self, '_image_changed', True): small=rescale_image(self.image,width=100,height=100) self.image_small=SimpleUploadedFile(name,small_pic) super(Model, self).save(*args, **kwargs)
不確定它是否適用于所有偽自動django工具(例如:ModelForm,contrib.admin等)。
添加回答
舉報
0/150
提交
取消