【问题标题】:Add custom user using django-allauth extra data使用 django-allauth 额外数据添加自定义用户
【发布时间】: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:如果你能告诉我如何制作一个带有按钮的登录页面,它也会触发它,那就太好了!

【问题讨论】:

标签: django django-models django-forms django-templates django-allauth


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-26
    • 2018-11-08
    • 2018-08-19
    • 2021-02-17
    • 2019-01-19
    • 2013-07-12
    • 2016-02-10
    • 2023-03-26
    相关资源
    最近更新 更多