Django Social Auth商店自定义用户模型中Facebook用户名
我刚刚使用Django 1.5和自定义用户模型集成了Django Social Auth(DSA)v0.7.23,除了用户名字段没有存储在自定义用户模型中之外,Auth/login工作正常 通过DSA代码,它似乎明确删除了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
@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返回用户名,以便将其存储在用户名字段中。