Django model.Model.'instance' 引发 AttributeError

我正在使用 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 中测试它时它起作用了。有人可以告诉我代码有什么问题吗?


慕田峪9158850
浏览 139回答 1
1回答

浮云间

如果u是字典,你应该使用:u['refresh_token'] = str(answer['refresh_token'])您尝试访问的方式只有在是一个类u时才应该完成。u
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python