如何使用Django-allauth与lazysignup?

3
我正在使用Django-allauth进行社交和简单的登录。我希望在未注册或未登录的情况下,用户可以创建一个短列表,并且当用户登录或注册时,该列表仍然存在。因此,我正在使用Django-lazysignup。
目前,每次我没有通过Facebook登录时,都会创建一个新的lazy_user,或者会出现“column user_id not unique”的错误。短列表也没有被转换。
我们如何将这两个集成?或者我们如何在不使用lazysignup的情况下实现这一点?
如果有帮助,任何帮助都将非常感激,谢谢!
2个回答

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以适应您的用例...


谢谢回复!但我还是有点困惑如何覆盖适配器方法并将其与懒惰注册集成。你知道有没有任何可行的例子或者能给我简要介绍一下吗? - user_2000

1
你可以使用一个Django 1.5自定义用户模型,并对其进行调整,例如使用会话密钥作为标识符。之后在注册时,只需填写用户名和/或电子邮件等信息即可。
如果您想保存懒惰用户的交互记录(例如用于统计目的),即使他们没有注册,这可能是有意义的。我还没有测试过,但它可能有效。 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接