Skip to content

Instantly share code, notes, and snippets.

@shadow-identity
Created September 9, 2013 17:33
Show Gist options
  • Save shadow-identity/6498880 to your computer and use it in GitHub Desktop.
Save shadow-identity/6498880 to your computer and use it in GitHub Desktop.
signal
@receiver([post_save, post_delete])
def save_change_of_state(sender, **kwargs):
if sender != State:
try:
rec_id = kwargs['instance'].id
if not 'created' in kwargs: # this was deletion
State(record_id=rec_id, model=sender, state='deleted').save()
print 'deleted'
elif kwargs['created']: # creation of new record
State(record_id=rec_id, model=sender, state='created').save()
print 'created'
else: # changing of existing record
State(record_id=rec_id, model=sender, state='changed').save()
print 'changed'
except TypeError:
pass
except AttributeError:
pass
except DatabaseError:
pass
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment