Offline optimistic locking for Django