[英]Django model.Model.'instance' raises AttributeError
我正在使用 django 制作一个带有 strava 应用程序的网站。 但是,在尝试存储刷新令牌(下面的代码)时,程序会遇到 AttributeError。
u.refresh_token = str(answer['refresh_token'])
u 是用户 class 的一个实例:
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 中进行测试时,它可以正常工作。 有人可以告诉我代码有什么问题吗?
如果u
是字典,则应使用:
u['refresh_token'] = str(answer['refresh_token'])
仅当u
是u
时,才应尝试访问您的方式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.