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中文网其他相关文章!