def save(self, *args, **kwargs):
current_activable_value = getattr(self, self.ACTIVATABLE_FIELD_NAME)<EOL>is_active_changed = self.id is None or self.__original_activatable_value != current_activable_value<EOL>self.__original_activatable_value = current_activable_value<EOL>ret_val = super(BaseActivatableModel, self).save(*args, **kwargs)<EOL>if is_active_changed:<EOL><INDENT>model_activations_changed.send(self.__class__, instance_ids=[self.id], is_active=current_activable_value)<EOL><DEDENT>if self.activatable_field_updated:<EOL><INDENT>model_activations_updated.send(self.__class__, instance_ids=[self.id], is_active=current_activable_value)<EOL><DEDENT>return ret_val<EOL>
A custom save method that handles figuring out when something is activated or deactivated.