如何保存电子邮件等于用户名Allauth社交媒体帐户Django

时间:2015-12-10 20:36:02

标签: django django-allauth

我设法设置allauth来处理我的项目并使用社交媒体登录。但是我想知道他们是否有任何选择将电子邮件设置为Facebook的用户名。我阅读了他们的文档但我在变量中看不到任何内容。

我找到this link,但他们改变了Django的核心文件。我希望找到更合适的东西。

我目前的配置:

ACCOUNT_USER_MODEL_EMAIL_FIELD = 'email'
ACCOUNT_USER_MODEL_USERNAME_FIELD = 'email'
SOCIALACCOUNT_QUERY_EMAIL = True
SOCIALACCOUNT_EMAIL_REQUIRED = True

此外,是否可以仅使用Allauth的社交媒体登录/创建创作?如果您访问localhost / accounts / create /(或类似的URL),我可以看到可以创建一个帐户。我不需要,因为我有自己的帐户创建页面。

1 个答案:

答案 0 :(得分:1)

好吧,您不需要更改Django文件。只需将其添加到models.py

即可
from django.db.models.signals import pre_save

@receiver(pre_save, sender=User)
def update_username_from_email(sender, instance, **kwargs):
    instance.username = instance.email

假设已发出电子邮件,每次新用户即将保存到数据库时,都会将电子邮件设置为用户名。