首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django model.Model.'instance‘引发AttributeError

Django model.Model.'instance‘引发AttributeError
EN

Stack Overflow用户
提问于 2020-08-01 19:23:05
回答 1查看 40关注 0票数 1

我正在制作一个使用django的strava应用程序的网站。但是,在尝试存储刷新令牌(下面的代码)时,程序员遇到了AttributeError。

代码语言:javascript
复制
u.refresh_token = str(answer['refresh_token']) 

U是User类的一个实例:

代码语言:javascript
复制
class User(models.Model):
   username = models.CharField(max_length=200, primary_key=True)
   password = models.CharField(max_length=200)
   strava_id = models.CharField(max_length=10)
   refresh_token = models.CharField(max_length=200)
   cookie = models.CharField(max_length=200, default='None')

错误:

代码语言:javascript
复制
AttributeError 'dict' object has no attribute 'refresh_token'

我可以理解代码为什么这样做,因为当查看本地变量时,它表明u实际上具有属性refresh_token。

代码语言:javascript
复制
u{'cookie': 'oP2L2ZDziOl7obaaYXmhFcOfRdXmOXurdqURXhX4JsWnPE1FQAIbGoEwpbcXax3h','password': 'W00lly!',

'refresh_token': '', 'strava_id': '', 'username': 'jeroenkodde'}

我测试了一下是否有问题,但这并不是问题所在。为了清楚起见,我还包括了答案字典:

代码语言:javascript
复制
answer  
{'access_token': '1346cc9606e18693e28c8547100ab936a14973ed',
 'athlete': {'badge_type_id': 0,
             'city': '',
             'country': None,
             'created_at': '2018-06-02T15:23:17Z',
             'firstname': 'Jeroen',
             'follower': None,
             'friend': None,
             'id': 31434041,
             'lastname': 'Kodde',
             'premium': False,
             'profile': 'avatar/athlete/large.png',
             'profile_medium': 'avatar/athlete/medium.png',
             'resource_state': 2,
             'sex': 'M',
             'state': '',
             'summit': False,
             'updated_at': '2020-07-25T13:14:48Z',
             'username': None},
 'expires_at': 1596300110,
 'expires_in': 20754,
 'refresh_token': '6924c5675d15ca6faae478dc3bd9791e78b7227c',
 'token_type': 'Bearer'}

此外,当在shell中测试时,它可以正常工作。有人能告诉我代码出了什么问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-01 19:37:11

如果u是一个字典,你应该使用:

代码语言:javascript
复制
u['refresh_token'] = str(answer['refresh_token']) 

只有当u是一个类时,才应该使用您尝试访问u的方式。

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

https://stackoverflow.com/questions/63204641

复制
相关文章

相似问题

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