首頁  >  文章  >  後端開發  >  如何針對特定模型場景重寫 Django Save 方法?

如何針對特定模型場景重寫 Django Save 方法?

Linda Hamilton
Linda Hamilton原創
2024-10-22 16:28:02151瀏覽

How to Override Django Save Method for Specific Model Scenarios?

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn