为了账号安全,请及时绑定邮箱和手机立即绑定

Django model.Model.'instance' 引发 AttributeError

Django model.Model.'instance' 引发 AttributeError

慕田峪9158850 2023-04-18 14:45:37
我正在使用 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


查看完整回答
反对 回复 2023-04-18
  • 1 回答
  • 0 关注
  • 138 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号