使用 django-allauth 额外数据添加自定义用户
Posted
技术标签:
【中文标题】使用 django-allauth 额外数据添加自定义用户【英文标题】:Add custom user using django-allauth extra data 【发布时间】:2016-08-15 11:27:42 【问题描述】:我想保存使用 facebook 注册后通过 allauth 包获得的数据。
我创建了一个自定义用户:
class AppUser(models.Model):
birthdate = models.DateTimeField(null=True, blank=True)
address = adress_model.AddressField(null=True, blank=True)
image = models.ImageField(upload_to=get_image_path, blank=True, null=True)
gender = models.TextField(null=True, blank=True)
user = models.OneToOneField(User)
我想将所有数据存储在数据库中,以便我可以轻松地从数据库中访问它。
P.S:如果你能告诉我如何制作一个带有按钮的登录页面,它也会触发它,那就太好了!
【问题讨论】:
检查这个 - ***.com/questions/12303478/… 【参考方案1】:您可以使用模型的save()
方法来提取和保存数据:
save(self, *wargs, **kwargs)
social_account = self.socialaccount_set.get(provider="facebook")
self.first_name = social_account.extra_data['first_name']
super(User, self).save(*wargs, **kwargs)
或者你可以使用allauth
提供的信号:
allauth.socialaccount.signals.social_account_added(request, sociallogin)
在此处查看信号文档:http://django-allauth.readthedocs.io/en/latest/signals.html
【讨论】:
以上是关于使用 django-allauth 额外数据添加自定义用户的主要内容,如果未能解决你的问题,请参考以下文章
使用 django-allauth 时如何自定义用户配置文件
使用 django-allauth 启用 oauth 登录,但使用自定义提供程序
如何在 django-allauth 上自定义 activate_url?