def get_field_or_callable_content(obj, attr_name):
    """ Returns value of obj.attr_name() or obj.attr_name """
    try:
        attr = getattr(obj, attr_name)
    except AttributeError:
        raise
    if callable(attr):
        return attr()
    else:
        return attr
