'Returns the value for this property on the given model instance.
See http://docs.python.org/ref/descriptors.html for a description of
the arguments to this class and what they mean.'

def __get__(self, model_instance, model_class):

    if (model_instance is None):
        return self
    try:
        return getattr(model_instance, self._attr_name())
    except AttributeError:
        return None
