本质上,你想覆盖
__init__方法,
models.Model以便保留原始值的副本。这样一来,你就不必进行其他数据库查找(这总是一件好事)。
class Person(models.Model): name = models.CharField() __original_name = None def __init__(self, *args, **kwargs): super(Person, self).__init__(*args, **kwargs) self.__original_name = self.name def save(self, force_insert=False, force_update=False, *args, **kwargs): if self.name != self.__original_name: # name changed - do something here super(Person, self).save(force_insert, force_update, *args, **kwargs) self.__original_name = self.name



