Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django模型.模型和#x27;实例';引发属性错误_Python_Django_Model - Fatal编程技术网

Python Django模型.模型和#x27;实例';引发属性错误

Python Django模型.模型和#x27;实例';引发属性错误,python,django,model,Python,Django,Model,我正在使用django制作一个带有strava应用程序的网站。但是,在尝试存储刷新令牌(下面的代码)时,程序会遇到AttributeError u.refresh_token = str(answer['refresh_token']) u是用户类的一个实例: class User(models.Model): username = models.CharField(max_length=200, primary_key=True) password = models.CharF

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

u.refresh_token = str(answer['refresh_token']) 
u是用户类的一个实例:

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'
我可以理解为什么代码会这样做,因为当查看局部变量时,它显示u实际上具有属性refresh\u标记

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中测试时,它也起了作用。
谁能告诉我代码出了什么问题。

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

u['refresh_token'] = str(answer['refresh_token']) 

只有当
u
是类时,才能尝试访问
u
的方式。

尝试打印(答案)并检查它具有哪些属性。我编辑了我的问题。这种情况很奇怪,因为它实际上是一个类对象。变量
answer
中有什么?另外,如何初始化变量
u
?这个解决方案实际上是正确的。我把变量
u
误认为是User类的一个实例,而实际上它是一个dictionary对象。我改变了初始化
u
的方式,现在它可以工作了。