获取错误'BadRequestException'对象没有属性'get'

时间:2017-12-29 01:41:39

标签: python django

我是python和django的新手。尝试设置django以使用Dropbox,但不断收到错误“'BadRequestException'对象没有属性'get'”。这是我的代码。

def get_dropbox_auth_flow(web_app_session):
    APP_KEY= '****'
    APP_SECRET = '****'
    redirect_uri = "http://localhost:8000/dropbox"
    return DropboxOAuth2Flow(APP_KEY, APP_SECRET, redirect_uri, web_app_session, "dropbox-auth-csrf-token")

# URL handler for /dropbox-auth-start
def dropbox_auth_start(request):
    authorize_url = get_dropbox_auth_flow(request.session).start()
    return HttpResponseRedirect(authorize_url)

# URL handler for /dropbox-auth-finish
def dropbox_auth_finish(request):
    try:
        access_token, user_id, url_state = get_dropbox_auth_flow(request.session).finish(request.GET)
        # oauth_result = get_dropbox_auth_flow(request.session).finish(request.query_params)
    except oauth.BadRequestException as e:
        return e
    except oauth.BadStateException as e:
        # Start the auth flow again.
        return HttpResponseRedirect("http://localhost:8000/dropbox_auth_start")
    except oauth.CsrfException as e:
        return HttpResponseForbidden()
    except oauth.NotApprovedException as e:
        raise e
    except oauth.ProviderException as e:
        raise e

我正在关注文档here

添加追溯here

1 个答案:

答案 0 :(得分:0)

对于所有其他异常,您raise e,但对于BadRequestException,您返回它 - 因此错误。

请注意,这一切都是非常奇怪的事情。没有必要抓住例外来重新提升它们。你应该只捕获你真正想要处理的那些,即BadStateException和CsrfException;你应该完全删除其他块,让它们被上游捕获。