检查用户是否第一次登录而没有使用django-allauth

oxalkeyp  于 12个月前  发布在  Go
关注(0)|答案(2)|浏览(140)

我在这里发现了很多关于同一主题的问题,但它们都有一个共同点,即Django-allauth。但我的项目使用djoser。我希望用户只有在第一次登录时才能在他们的个人资料中添加一些额外的信息。我不能使用Django-allauth的比较。

user.last_login == user.date_joined

字符串
当我登录时,最后一次登录日期发生了变化,我希望用户登录,以便他们可以进行更改。
我正在使用Django 1.7和djoser进行登录和身份验证。

wydwbb8l

wydwbb8l1#

您可以简单地添加一个新的BooleanField(例如,命名为is_previously_logged_in)到您的配置文件模型中,并在每次登录时检查它是否仍然是False。然后您可以将其设置为True,这样就不会向用户显示配置文件信息两次。

h43kikqp

h43kikqp2#

这也可以通过检查内置的user.last_login字段来实现。它将是None,直到用户第一次登录。
我可以在account adapter的login方法中进行检查:

class CustomAccountAdapter(DefaultAccountAdapter):
    def login(self, request, user):
        is_first_login = user.last_login is None
        super().login(request, user)
        if is_first_login:
            # First login, do something

字符串
如果你还没有使用自定义适配器,你需要在Django设置文件中添加以下内容:

ACCOUNT_ADAPTER = 'my.package.CustomAccountAdapter'

相关问题