当访问者通过保存的 session 进行身份验证时,Django 似乎不会更新 auth_user 模型中的 last_login 字段。
因此,在这种情况下,我如何在每个 SO 用户的个人资料页面上实现类似的功能,例如“已查看”字段。
最佳答案
假设您的自定义 UserProfile 模型中有 last_seen_on 和 last_activity_ip 字段,下面是一个简单的中间件类,可以执行您想要的操作:
import datetime
class LastSeen(object):
def process_request(self, request):
user = request.user
if not user.is_authenticated(): return None
up = user.get_profile()
up.last_seen_on = datetime.now()
up.last_activity_ip = request.META['REMOTE_ADDR']
up.save()
return None
关于auth_user 模型中的 Django "last_login"属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2440603/