【问题标题】:Issues with username field in Python-social-authPython-social-auth 中的用户名字段问题
【发布时间】:2015-06-07 10:54:47
【问题描述】:

我正在为 Facebook 使用 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

有什么解决办法吗?

【问题讨论】:

  • 你找到解决这个问题的方法了吗?我面临着完全相同的问题。

标签: python django python-social-auth


【解决方案1】:

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

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

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 方法。

【讨论】:

    【解决方案2】:

    我有同样的问题并通过在创建用户字段中添加用户参数解决了问题.. 无:social-auth 需要参数“用户名”。它实际上并没有被使用。

        class UserManager(BaseUserManager):
    def create_user(self, email,username=None, full_name=None, password='&btCqv"}@,4TWd6A'):
        if not email:
            raise ValueError("Users must have an email address")
        if not password:
            raise ValueError("Users must have a password")
        user = self.model(
            email=self.normalize_email(email),
        )
        user.set_password(password)  # change user password
        user.staff = is_staff
        user.admin = is_admin
        user.is_active = is_active
        user.save(using=self._db)
        return user
    

    如果问题仍然存在,请参考:https://github.com/python-social-auth/social-app-django/issues/15#issuecomment-276118574

    【讨论】:

      猜你喜欢
      • 2017-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-11
      • 1970-01-01
      • 2014-02-13
      • 2014-06-13
      • 1970-01-01
      相关资源
      最近更新 更多