Django:覆蓋特定模型場景的保存方法
在需要根據某些情況修改Django 模型的保存方法的情況下條件,例如確定圖像是否已更新或僅更改了描述,可以採用自訂方法。
一種技術涉及使用屬性和標誌:
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
def get_image(self):
return self._image
image = property(get_image, set_image)
def save(self, *args, **kwargs):
if getattr(self, '_image_changed', True):
# Logic for image rescaling
super(Model, self).save(*args, **kwargs)
這種方式保證只有當 '_image_changed' 標誌設為 True 時才會觸發圖像縮放邏輯,表明圖像已經被修改的。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3