'If an attribute does not exist on this instance, then we also attempt
to proxy it to the underlying HttpRequest object.'

def __getattribute__(self, attr):

    try:
        return super(Request, self).__getattribute__(attr)
    except AttributeError:
        info = sys.exc_info()
        try:
            return getattr(self._request, attr)
        except AttributeError:
            six.reraise(info[0], info[1], info[2].tb_next)
