def save(self, force_insert = False, force_update = False, using=''): ''' ''' # 1. get old values old_pk = self.pk old_attrs = dict() #try: if old_pk: old_attrs = _2dict(self.__class__.objects.get(pk = old_pk)) #except: # old_attrs = dict() # 2. save object if issubclass(self.__class__, PolymorphicModel): PolymorphicModel.save(self, force_insert = force_insert, force_update = force_update) else: models.Model.save(self, force_insert = force_insert, force_update = force_update, using = using) # 3. get new values new_pk = self.pk new_attrs = dict() if new_pk: new_attrs = _2dict(self) # 4. compare and log if new_pk: # everything ok if old_pk: # update for k, v in old_attrs.iteritems(): if k in new_attrs and v == new_attrs[k]: del new_attrs[k] _log_it(get_request(), self, CHANGE, new_attrs) else: # create _log_it(get_request(), self, ADDITION, new_attrs)
def raw_save(self, force_insert = False, force_update = False, using=''): ''' For import only ''' if issubclass(self.__class__, PolymorphicModel): PolymorphicModel.save(self, force_insert = force_insert, force_update = force_update) else: models.Model.save(self, force_insert = force_insert, force_update = force_update, using = using)