0
我剛剛使用django 1.5與自定義用戶模型集成了Django-Social-Auth(DSA)v0.7.23,auth/login工作正常,除了用戶名字段這是不存儲在我的自定義用戶模型。Django Social Auth存儲自定義用戶模型中Facebook的用戶名
逐步通過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配置)
謝謝。
感謝omab的採樣管道,這是我採取的路線。如果定義了USERNAME_FIELD,我更加困惑於爲什麼應該彈出用戶名。我的自定義用戶表需要從Facebook返回的用戶名,以便它可以存儲在用戶名字段中。 –