我正在尝试使用Django-AllAuth
访问用户的个人资料图片和帖子。这是我尝试加载配置文件图像的模板:
<html>
<body>
Welcome back {{ user.first_name }} {{ user.age }}
<img src={{user.cover.source}} height="60" width="60">
<a href="/">Home</a>
</body>
</html>
以下是view.py
def fb_personality_traits(request):
# logger.debug('FB Page Loaded')
return render(request, 'home/facebook_personality_traits.html')
Settings.py
SITE_ID = 1
LOGIN_REDIRECT_URL = '/facebook_personality_traits/'
SOCIALACCOUNT_QUERY_EMAIL = True
SOCIALACCOUNT_PROVIDERS = {
'facebook': {
'SCOPE': ['email', 'user_posts', 'public_profile', 'user_photos'],
# 'AUTH_PARAMS': {'auth_type': 'reauthenticate'},
'METHOD': 'js_sdk',
'FIELDS': [
'id',
'email',
'name',
'first_name',
'last_name',
'cover',
'posts',
'age',
],
'EXCHANGE_TOKEN': True,
'VERIFIED_EMAIL': True,
'VERSION': 'v2.10',
}
}
ACCOUNT_LOGOUT_ON_GET = True
这里我没有得到图像。请参阅以下结果:
我想要实现什么?
1)我想在屏幕上显示个人资料图片。
2)我想获取用户登录view.py
的帖子并将其发送到屏幕上以显示在模板上。
答案 0 :(得分:0)
django-allauth不会保留age
和cover
等非必填字段。只有公共字段会自动保留在User
模型中(see fields)。您需要通过捕获数据并将其存储在某个位置(如数据库)来自行处理。这些字段仅在登录后响应(see example method)上检索和访问,可在extra_data
字典中找到。
我建议在成功登录并在数据库中存储此值后,在SocialAccount
实例(本例中为Facebook)上调用get_avatar_url
。在Facebook的情况下,用户头像URL不应该随着时间而改变。