class MyModel(models.Model):
    state = models.IntegerField()
previous_state = None

@staticmethod
def post_save(sender, **kwargs):
    instance = kwargs.get('instance')
created = kwargs.get('created')
if instance.previous_state != instance.state or created:
    do_something_with_state_change()

@staticmethod
def remember_state(sender, **kwargs):
    instance = kwargs.get('instance')
instance.previous_state = instance.state
post_save.connect(MyModel.post_save, sender=MyModel)
post_init.connect(MyModel.remember_state, sender=MyModel)
Actions triggered by field change in Django