la_*_*0ka 11 python django middleware
django的用户模型有一个last_login
字段,如果所有用户每次离开网站时都要注销,那就太棒了,但如果他们不这样做呢?
如何跟踪从未注销的用户及其在网站上的活动?
Aam*_*nan 24
您需要last_activity
在用户配置文件(或自定义用户模型)中包含该字段.该字段将在每个请求时更新.要实现这一点,您需要拥有自定义中间件:
配置文件/ middleware.py:
from django.utils import timezone
from myproject.profiles.models import Profile
class UpdateLastActivityMiddleware(object):
def process_view(self, request, view_func, view_args, view_kwargs):
assert hasattr(request, 'user'), 'The UpdateLastActivityMiddleware requires authentication middleware to be installed.'
if request.user.is_authenticated():
Profile.objects.filter(user__id=request.user.id) \
.update(last_activity=timezone.now())
Run Code Online (Sandbox Code Playgroud)
在您的设置文件中添加此中间件:
MIDDLEWARE_CLASSES = (
# other middlewares
'myproject.profiles.middleware.UpdateLastActivityMiddleware',
)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5587 次 |
最近记录: |