我们有一个 Django 项目,每当她打电话给我们时,都会为一个人创建一个用户帐户。该人以后可能会或可能不会使用她的帐户登录我们的网站。
问题:如何判断用户是否曾经登录过我们的网站?
澄清:我想为数百名现有用户回答上述问题,而不仅仅是从此时开始创建的新用户。
想法1:检查User.last_login
。不幸的是,无论用户是否登录,Django 都会在创建用户时进行last_login
初始化。datetime.datetime.now()
想法2:检查是否User.last_login
匹配User.date_joined
。不幸的是,Django 将这两个字段都初始化为,datetime.now()
它们可能相隔几微秒:
In [1]: u = User.objects.create(username="bla")
In [2]: u.date_joined - u.last_login
Out[2]: datetime.timedelta(0, 0, 23)
我正在使用的当前 hack:假设用户至少登录过一次iff user.last_login - user.date_joined >= datetime.timedelta(seconds=1)
。
有没有更好的方法来判断用户是否曾经登录过?