Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何保存电子邮件等于用户名Allauth社交媒体帐户Django_Django_Django Allauth - Fatal编程技术网

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

如何保存电子邮件等于用户名Allauth社交媒体帐户Django,django,django-allauth,Django,Django Allauth,我设法设置allauth来处理我的项目,并使用社交媒体登录。然而,我想知道他们是否有任何选项将Facebook获取的电子邮件设置为用户名。我阅读了他们的文档,但在变量中看不到任何内容 我找到了,但他们改变了Django的核心文件。我希望能找到更合适的 我当前的配置: ACCOUNT_USER_MODEL_EMAIL_FIELD = 'email' ACCOUNT_USER_MODEL_USERNAME_FIELD = 'email' SOCIALACCOUNT_QUERY_EMAIL = Tru

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

我找到了,但他们改变了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),我可以看到创建帐户是可能的。我不需要它,因为我有自己的帐户创建页面。

好吧,你不需要更改Django文件。只需将此添加到您的
模型.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
假设已经发送了一封电子邮件,它会在每次将新用户保存到数据库时将该电子邮件设置为用户名