0
我正在使用django-social-auth,我對它的簡單性印象深刻,但是我使用自定義用戶模型,並且我忽略了save()
方法爲了設置我需要的字段的默認計算值,問題是save()
未被socialauth調用!這怎麼可能?在創建時是否有另一種設置計算字段值的方法?django-social-auth自定義用戶模型和覆蓋save()方法
我正在使用django-social-auth,我對它的簡單性印象深刻,但是我使用自定義用戶模型,並且我忽略了save()
方法爲了設置我需要的字段的默認計算值,問題是save()
未被socialauth調用!這怎麼可能?在創建時是否有另一種設置計算字段值的方法?django-social-auth自定義用戶模型和覆蓋save()方法
爲了解決我創建了一個自定義的「管道」(com.mysite.apps.users.social_auth.pipeline.addFacebookDetails),其中我只在其建立必要的數據添加到用戶模型的問題:
在settings.py:
SOCIAL_AUTH_PIPELINE = (
'social_auth.backends.pipeline.social.social_auth_user',
'social_auth.backends.pipeline.user.get_username',
'social_auth.backends.pipeline.user.create_user',
'com.mysite.apps.users.social_auth.pipeline.addFacebookDetails',
'social_auth.backends.pipeline.social.associate_user',
'social_auth.backends.pipeline.user.update_user_details',
)
在com.mysite.apps.users.social_auth.pipeline.addFacebookDetails.py:
def addFacebookDetails(*args, **kwargs):
if kwargs['is_new']:
user = kwargs['user']
user.field1 = 'foo'
user.field2 = 'bar'
return None
你有沒有試圖改變社會-auth的管道? http://django-social-auth.readthedocs.org/en/latest/pipeline.html – geekazoid
是的我已經解決了我的問題,我忘了發佈我的解決方案:P – daveoncode
你可以發佈你的解決方案和你的代碼嗎?我有類似的問題,我認爲你的解決方案可能對我有幫助。 – jackiekazil