第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Django的。覆蓋模型的保存

Django的。覆蓋模型的保存

Helenr 2019-08-27 13:04:05
Django的。覆蓋模型的保存在保存模型之前,我會重新調(diào)整圖片大小。但是,如何檢查是否添加了新圖片或更新了描述,以便每次保存模型時都可以跳過重新縮放?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條經(jīng)驗 獲得超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等)。


查看完整回答
反對 回復(fù) 2019-08-27
  • 3 回答
  • 0 關(guān)注
  • 863 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號