AttributeError:' WSGIRequest'对象没有属性请求'在OAuth2Decorator上

时间:2014-01-29 19:10:03

标签: django google-app-engine google-api google-api-python-client python-decorators

我在Google App Engine上使用Django试图访问Google API时遇到了一个问题。

我想使用装饰器,如文档中所述,但我一遍又一遍地得到同样的错误:

AttributeError: 'WSGIRequest' object has no attribute 'request'

StackTrace:

Internal Server Error: /
Traceback (most recent call last):
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django-1.5/django/core/handlers/base.py", line 115, in get_response
    response = callback(request, *callback_args, **callback_kwargs)
  File "/Users/johannes/GitHub/itzehoe/dependencies/oauth2client/appengine.py", line 703, in check_oauth
    self._create_flow(request_handler)
  File "/Users/johannes/GitHub/itzehoe/dependencies/oauth2client/appengine.py", line 734, in _create_flow
    redirect_uri = request_handler.request.relative_url(
AttributeError: 'WSGIRequest' object has no attribute 'request'

还有一些代码:

from google.appengine.api import users
from oauth2client.appengine import OAuth2DecoratorFromClientSecrets

from django.shortcuts import render
from django.conf import settings

decorator = OAuth2DecoratorFromClientSecrets(settings.GOOGLE_CLIENT_SECRETS,
                                             'https://www.googleapis.com/auth/admin.directory.group')


@decorator.oauth_required
def index(request):
    context = {}
    return render(request, 'index.html', context)

1 个答案:

答案 0 :(得分:3)

OAuth2Decorator功能假设您将方法包装在webappwebapp2 RequestHandler子类中,但它不适用于django视图。