'Query this object and all of its references for objects that
match the given selector.  Raises an error if more than one object
is found.  Returns single matching object, or None if nothing is found
Args:
selector (JSON-like) :
Returns:
Model'

def select_one(self, selector):

    result = list(self.select(selector))
    if (len(result) > 1):
        raise ValueError(('Found    more    than    one    object    matching    %s:    %r' % (selector, result)))
    if (len(result) == 0):
        return None
    return result[0]
