gpt4 book ai didi

python - Python-social-auth 中用户名字段的问题

转载 作者:太空狗 更新时间:2023-10-29 23:58:42 25 4
gpt4 key购买 nike

我正在为 face-book 使用 Python socia auth。我修改了用户模型的默认 Django 行为并删除了 username 字段。

我在自定义用户模型中添加了这个:USERNAME_FIELD = 'email'

但我在尝试登录时遇到此错误

TypeError at /complete/facebook/
'username' is an invalid keyword argument for this function

我知道它在尝试创建用户时找不到用户名字段,因此会抛出此错误。

我已经定义了以下设置,但我的问题仍然存在:

SOCIAL_AUTH_USER_MODEL = 'accounts.User'
SOCIAL_AUTH_USERNAME_IS_FULL_EMAIL = True

有什么解决办法吗?

最佳答案

我知道这个问题已经发布几个月了,但我遇到了同样的问题并找到了解决方案。

这个问题可以用pipeline来解决。默认管道执行此操作:

def create_user(strategy, details, user=None, *args, **kwargs):
if user:
return {'is_new': False}

fields = dict((name, kwargs.get(name) or details.get(name))
for name in strategy.setting('USER_FIELDS',
USER_FIELDS))
if not fields:
return

return {
'is_new': True,
'user': strategy.create_user(**fields)
}

在您的设置中覆盖 USER_FIELDS,仅保留 email。或者,您可以创建全新的 create_user 方法。

关于python - Python-social-auth 中用户名字段的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29413741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com