Python Django-如何检查用户是否每天访问网站

Python Django-如何检查用户是否每天访问网站,python,django,Python,Django,根据标题,在Django中,我应该在何时何地存储有关用户访问的信息?我已经在使用Django内置信号记录用户登录/注销,但是如果用户已经登录到该机器上怎么办?我怎样才能检测到这个 我想在我的Django项目上做同样的事情。问题是,last\u login变量没有帮助,因为它在用户登录时更新,如果用户缓存其会话,该变量将永远不会更新 一种解决方案是创建一个装饰器,并在视图上使用它。这样,如果用户使用您的站点,变量将得到更新 这是一个如何做到这一点的示例: from functools import

根据标题,在Django中,我应该在何时何地存储有关用户访问的信息?我已经在使用Django内置信号记录用户登录/注销,但是如果用户已经登录到该机器上怎么办?我怎样才能检测到这个

我想在我的Django项目上做同样的事情。问题是,
last\u login
变量没有帮助,因为它在用户登录时更新,如果用户缓存其会话,该变量将永远不会更新

一种解决方案是创建一个装饰器,并在视图上使用它。这样,如果用户使用您的站点,变量将得到更新

这是一个如何做到这一点的示例:

from functools import wraps
from django.contrib.auth.models import User
from django.utils import timezone

def W_update_user_login(func):
    @wraps(func)
    def wrapper(*args, **kwargs):
        request = args[0] 

        if request.user.is_authenticated():
            user=User.objects.get(username=request.user)
            user.last_login=timezone.now()
            user.save()

        return func(*args, **kwargs)
    return wrapper
如果将前面的代码添加到
views.py
文件中,您将能够修饰您的函数。例:

@W_update_user_login
def your_view_function(request):

    #
    # your normal code..
    #
    return HttpResponse....

这似乎是个好主意!谢谢你的提示,我很快就会试试的!