Django:針對特定模型場景重寫save 方法
需要根據某些情況修改Django 模型的save 方法的情況條件,例如確定圖像是否已更新或僅更改了描述,可以採用自訂方法。
一種技術涉及使用屬性和標誌:
<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 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)</code>
此方法可確保僅當 '_image_changed' 標誌設為 True 時才觸發影像縮放邏輯,表明影像已被修改。
以上是如何針對特定模型場景重寫 Django Save 方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!