Django Allauth 将用户名设置为 Gmail 地址

问题描述

我是 Django Allauth 的新手,有点困惑,需要帮助 我有一个包含以下字段的自定义用户模型

username = models.CharField(_('username'),max_length=130,unique=True)
full_name = models.CharField(_('full name'),blank=True)
is_staff = models.BooleanField(_('is_staff'),default=False)
is_active = models.BooleanField(_('is_active'),default=True)
date_joined = models.DateField(_("date_joined"),default=date.today)
phone_number_verified = models.BooleanField(default=False)
change_pw = models.BooleanField(default=True)
phone_number = models.BigIntegerField(unique=True,default=create_new_ref_number())
country_code = models.IntegerField(default='+91')
two_factor_auth = models.BooleanField(default=False)

我能够使用 gmail 登录成功注册用户。但是,在用户名字段中,保存了“用户”值。 我想将 gmail 中的电子邮件地址保存为用户名。我做了一些研究,似乎我需要写一些保存信号并添加一些设置,但我不确定在哪里写什么。我已经阅读了文档,但它有点令人困惑。

使用 SocialAccounts ,我可以获得照片和全名

def socialuser(self):
        data = SocialAccount.objects.get(user=self.id).extra_data  
        nameofuser = data.get('name')      
        return nameofuser 
    
    def socialuserphoto(self):
        data = SocialAccount.objects.get(user=self.id).extra_data  
        pictureurl = data.get('picture')      
        return pictureurl 

我使用下面的 href 进行注册登录用户

<a title="Google" class="socialaccount_provider google" style="text-decoration:none;" href="/accounts/google/login/?process=login">Sign in with Google</a>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)