2013-04-02 37 views
2

我正在使用Django-allauth進行社交和簡單登錄。我希望當沒有註冊或未登錄的用戶列出項目名單時,當用戶註冊或登錄時候選名單仍然存在。因此,我使用的是Django-lazysignup。我們如何使用Django-allauth與lazysignup

現在,每當我沒有用Facebook登錄時,就會創建一個新的lazy_user,或者它給我一個「column user_id not unique」錯誤。候選名單也沒有轉換。

我們如何整合這兩者?或者我們如何在不使用lazysignup的情況下做到這一點?

對此的任何幫助將是偉大的,謝謝!

回答

1

看一看這裏:

https://github.com/pennersr/django-allauth/blob/327f5b60f31e9b3db18d461266084a44f04888dc/allauth/account/adapter.py#L117

這裏:

https://github.com/pennersr/django-allauth/blob/327f5b60f31e9b3db18d461266084a44f04888dc/allauth/socialaccount/adapter.py#L40

在這裏,一個新的User實例爲本地和社會用戶分別創建。這些適配器方法可以被重寫,而不是產生一個新的實例,而是可以改變它們以返回現有的懶惰用戶實例。

隨着django-allauth出來你可能會碰到,你沒有訪問這裏的request實例的問題的方塊,但我願意去適應allauth,以配合您的使用情況......

+0

感謝您的回覆!但是如何重寫適配器方法並將其與懶惰註冊整合,我仍然有點困惑。你知道任何有效的例子嗎?或者你能給我一個簡短的介紹嗎? –

1

你可以使用以某種方式調整的custom user model (Django 1.5),以便它使用會話密鑰作爲標識符。 稍後註冊..只需填寫用戶名和/或電子郵件等。

如果您想保存懶惰的用戶交互,即使他們沒有註冊(例如統計用法),這也是有意義的。我還沒有測試過這個..但它可能工作。 :)

+1

這就是我所做的!它工作正常!謝謝 –