Django Social Auth商店自定义用户模型中Facebook用户名

Django Social Auth商店自定义用户模型中Facebook用户名,django,django-models,django-socialauth,Django,Django Models,Django Socialauth,我刚刚使用Django 1.5和自定义用户模型集成了Django Social Auth(DSA)v0.7.23,除了用户名字段没有存储在自定义用户模型中之外,Auth/login工作正常 通过DSA代码,它似乎明确删除了facebook传回的用户名。下面是弹出用户名的相关函数: @classmethod def username_field(cls, values): user_model = cls.user_model() if hasattr(user_model, 'U

我刚刚使用Django 1.5和自定义用户模型集成了Django Social Auth(DSA)v0.7.23,除了用户名字段没有存储在自定义用户模型中之外,Auth/login工作正常

通过DSA代码,它似乎明确删除了facebook传回的用户名。下面是弹出用户名的相关函数:

@classmethod
def username_field(cls, values):
    user_model = cls.user_model()
    if hasattr(user_model, 'USERNAME_FIELD'):
        # Django 1.5 custom user model, 'username' is just for internal
        # use, doesn't imply that the model should have an username field
        values[user_model.USERNAME_FIELD] = values.pop('username') # Username removed
    return values
我如何获取从facebook传回的用户名,而不让DSA明确删除它

我相信一个解决办法是创建一个自定义管道来生成用户名。但是,我想知道是否有其他人以前遇到过这种情况,并且利用了DSA中已经存在的任何内容(即特定的settings.py配置)


谢谢。

原始用户名在传递给管道函数的
详细信息
属性中可用,例如:

def generated_username(user, details, *args, **kwargs):
    username = details['username']
    user.your_field = username
    user.save()

值得注意的是,如果您的自定义模型中定义了
username\u字段
,则会从值中弹出用户名。

感谢omab提供的示例管道,这是我采用的路线。我更困惑的是,如果定义了username\u字段,为什么会弹出用户名。我的自定义用户表需要从facebook返回用户名,以便将其存储在用户名字段中。