2013-04-02 18 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

这就是我所做的!它工作正常!谢谢 –