我正在使用 django 制作一个带有 strava 应用程序的网站。但是,在尝试存储刷新令牌(下面的代码)时,程序会遇到 AttributeError。u.refresh_token = str(answer['refresh_token']) u 是 User 类的一个实例: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')错误:AttributeError 'dict' object has no attribute 'refresh_token'我明白为什么代码会这样做,因为在查看局部变量时,它表明您实际上确实具有属性 refresh_token。u{'cookie': 'oP2L2ZDziOl7obaaYXmhFcOfRdXmOXurdqURXhX4JsWnPE1FQAIbGoEwpbcXax3h','password': 'W00lly!','refresh_token': '', 'strava_id': '', 'username': 'jeroenkodde'}我测试了它是否可能是 anwer dict,但这并没有导致问题。为了清楚起见,我还包括了答案词典: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 中测试它时它起作用了。有人可以告诉我代码有什么问题吗?
1 回答
浮云间
TA贡献1829条经验 获得超4个赞
如果u是字典,你应该使用:
u['refresh_token'] = str(answer['refresh_token'])
您尝试访问的方式只有在是一个类u时才应该完成。u
添加回答
举报
0/150
提交
取消
