如何针对特定模型场景重写 Django Save 方法?

Linda Hamilton
发布: 2024-10-22 16:28:02
原创
150 人浏览过

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

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!