Example #1
0
	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)
Example #2
0
	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)