重寫Django 模型的選擇性調整大小的保存方法
問題:
問題:問題:
問題:
問題:<code class="python">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) 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)</code>問題:問題:問題:問Django 模型如何僅在新增或更新圖像時重寫save 方法以調整圖像大小,而不是在編輯其他欄位時? 問題:提供的程式碼調整影像大小每次儲存模型時,即使只更新描述。這是低效率且不必要的。 解決方案:建議的解決方案涉及創建一個用作圖像字段的 setter 和 getter 的屬性。這允許追蹤影像欄位的更改,並且僅在修改時調整大小:透過使用此方法,僅在新增或更新影像時才調整大小,有效解決了原始問題中提出的問題.
以上是如何重寫 Django 模型的保存方法以選擇性調整圖像大小?的詳細內容。更多資訊請關注PHP中文網其他相關文章!