美文网首页
如何检查模型中某个字段发生改变

如何检查模型中某个字段发生改变

作者: 思考的虫子 | 来源:发表于2019-04-21 11:13 被阅读0次

两种方法检查模型中某个字段发生改变

How to check if a filed has changed when model save

Django 2.1.7

1. 在模型中检查

适用于在任何时候字段发生变化采取动作

class Task(models.Model):
    if_done = models.BooleanField('If Done', default=False)
    __original_done = None
    
    
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        # inital original
        self.__original_done = self.if_done

    def save(self, *args, **kwargs):
        if not self.__original_done and self.if_done:
            # if_done changed, do something
            
        super().save(*args, **kwargs)
        # update the original
        self.__original_done = self.if_done

2. 在 Admin Class 中检查

适用于只在使用admin的时候检查字段变化,
由于写在了admin class 里,所以如果有其他views 修改了改model,检查是不起作用的。

利用 Form.changed_data 值检查

class TaskAdmin(admin.ModelAdmin):

    def save_model(self, request, obj, form, change):
        if 'if_done' in form.changed_data:
            messages.info(request, "The task status has changed")
        else:
            messages.info(request, "The task status has not changed")
        super().save_model(request, obj, form, change)

相关文章

  • 如何检查模型中某个字段发生改变

    两种方法检查模型中某个字段发生改变 How to check if a filed has changed whe...

  • Django更改模型过程中易出现的问题及解决方案

    Django项目中我们要经常根据项目的需要添加或删减一个模型(models)的字段,有时还要改变某个字段的数据类型...

  • iOS中强大的数组排序方法

    使用场景:数组中的元素是模型,会根据模型中的某个字段来排序.更复杂的情况是会根据多个字段来排序.必然就会出现优先级...

  • 对Sqlite数据库一些操作

    一.根据表名删除数据表 二,数据库添加新字段 三.检查表中 是否含有某个字段

  • 模型.md

    多个数据库,某个数据库,某个表,字段; 分布式数据库;切换数据库;连接数据库;模型实例化(模型定义);字段; 分布...

  • DRF 在序列化器检查字段是否有效

    DRF 在序列化器检查字段是否有效 我所知道的几种方法: 在模型类中的 clean() 检查,最严格,确保数据库中...

  • 解决接口返回数据,某些字段为nil的问题

    ** 背景:** 公司接口返回的数据有一个特点:如果某个字段没有值,就不返回这个字段。这就造成在模型中赋值的时候,...

  • Django学习记录

    模型相关操作 在创建完模型类后,需要对模型类中的字段信息进行修改,如何同步到数据库? 在创建了表之后,如何在adm...

  • 2018-03-06SQL查询

    查询某些字段值在或不在某个表的字段中 EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何...

  • KVO深入解析.md

    iOS 中监听某个值的改变有哪些方法? 在一个复杂的,有状态的系统中,当一个对象的状态发生改变,如何通知系统,并对...

网友评论

      本文标题:如何检查模型中某个字段发生改变

      本文链接:https://www.haomeiwen.com/subject/bxvdgqtx.html