我们如何将Django-allauth与lazysignup一起使用

时间:2013-04-02 17:07:28

标签: django-sessions django-allauth lazy-registration

我正在使用Django-allauth进行社交和简单登录。我希望当没有注册或未登录的用户列出项目的候选名单时,当用户注册或登录时,候选名单仍然存在。所以我正在使用Django-lazysignup。

现在,每次我没有使用Facebook登录时都会创建一个新的lazy_user,或者它给我一个“column user_id not unique”错误。候选名单也未转换。

我们如何整合这两者?或者我们如何在不使用lazysignup的情况下执行此操作?

对此的任何帮助都会很棒,谢谢!

2 个答案:

答案 0 :(得分:2)

看看这里:

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以匹配你的用例...

答案 1 :(得分:1)

您可以在某种方式中使用custom user model (Django 1.5)调整,以便它使用会话密钥作为标识符。 稍后注册..只需填写用户名和/或电子邮件等。

如果您想要保存懒惰的用户交互,即使他们没有注册(例如,用于统计使用),这也是有意义的。我没有测试过这个..但它可能会有效。 :)

相关问题