This whole structure is kind of confusing and duplicates some conditions... unless I'm missing something, wouldn't this work the same and be clearer?:

        if (not public_profile_exists):
            if not request.user.is_authenticated():
                # you have to be authenticated to continue
                messages.warning(request, LOGIN_MESSAGE)
                return login_required(view_profile)(request, username)
            if not request.user.userprofile.is_vouched:
                # you have to be vouched to continue
                messages.error(request, GET_VOUCHED_MESSAGE)
                return redirect('home')