首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError:'AnonymousUser‘对象不可迭代

TypeError:'AnonymousUser‘对象不可迭代
EN

Stack Overflow用户
提问于 2018-12-26 07:45:38
回答 1查看 1.5K关注 0票数 1
代码语言:javascript
复制
def gmail_authenticate(request):
    storage = DjangoORMStorage(CredentialsModel, 'id', request.user, 'credential')
    credential = storage.get()

    if credential is None or credential.invalid:
        FLOW.params['state'] = xsrfutil.generate_token(settings.SECRET_KEY,
                                                            request.user)
        authorize_url = FLOW.step1_get_authorize_url()
        return HttpResponseRedirect(authorize_url)
    else:
        http = httplib2.Http()
        http = credential.authorize(http)
        service = build('gmail', 'v1', http = http)
        print('access_token = ', credential.access_token)
        status = True

        return render(request, 'index.html', {'status': status})

我得到了

TypeError:“AnonymousUser”对象在读取凭据时不可迭代

我的错误越来越少。

文件“C:\Users\admin\Desktop\GmailTest\Google-login\gfglogin\gfgauth\views.py”,第10行,gmail_authenticate凭据= storage.get() TypeError:'AnonymousUser‘对象不可迭代26/12/2018年12:51:07 "GET /auth/ AnonymousUser/1.1“500 111109

我希望对gmail用户进行身份验证。

EN

回答 1

Stack Overflow用户

发布于 2018-12-26 09:28:40

DjangoORMStorage的类文档中我可以看到

从Django ORM检索的oauth2client.Credentials与用于查询模型的modelkey_value->key_name对关联,以及property_name标识CredentialsProperty字段,所有这些都是在该存储对象的构造函数中定义的。

因此,您需要传递DjangoORMStorage初始化的DjangoORMStorage值,并且它不应该是一个对象。我认为你的实施应该是这样的:

代码语言:javascript
复制
def gmail_authenticate(request):
    if not request.user.is_authenticated:
        # Raise or Return Not authenticated response

    storage = DjangoORMStorage(CredentialsModel, 'id', request.user.id, 'credential')
    credential = storage.get()

    # Rest of the Code
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53929020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档