1
根據標題,在Django中,何時何地我應該存儲有關用戶訪問的信息?我已經使用Django內置信號記錄了用戶登錄/註銷,但是如果用戶已經登錄了該機器會怎麼樣?我如何檢測這個?Django - 如何檢查用戶是否每天訪問該網站
根據標題,在Django中,何時何地我應該存儲有關用戶訪問的信息?我已經使用Django內置信號記錄了用戶登錄/註銷,但是如果用戶已經登錄了該機器會怎麼樣?我如何檢測這個?Django - 如何檢查用戶是否每天訪問該網站
我想在我的Django項目上做同樣的事情。問題是last_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....
這似乎是一個非常好的主意!感謝提示,我會盡快嘗試! –