Suj*_*jit 7 django django-models django-admin
他们有什么方法可以计算django登录的数量吗?每次登录都会更新auth_user的last_login字段.我们可以使用该字段来计算特定用户的登录次数吗?
Guy*_*den 10
还有一个'user_logged_in'信号可以解决最后一次登录等问题.
class UserLogin(models.Model):
"""Represent users' logins, one per record"""
user = models.ForeignKey(user)
timestamp = models.DateTimeField()
from django.contrib.auth.signals import user_logged_in
def update_user_login(sender, user, **kwargs):
user.userlogin_set.create(timestamp=timezone.now())
user.save()
user_logged_in.connect(update_user_login)
Run Code Online (Sandbox Code Playgroud)
是的,从某种意义上说.您需要应用程序UserProfile模型中的字段来保存登录次数,或者需要单独的模型来存储完整的登录历史记录.然后为last_login更新添加信号处理程序,并将其记录在您选择的模型中.这是我的例子:
from django.db import models, signals
from django.contrib.auth.models import User
class UserLogin(models.Model):
"""Represent users' logins, one per record"""
user = models.ForeignKey(user)
timestamp = models.DateTimeField()
def user_presave(sender, instance, **kwargs):
if instance.last_login:
old = instance.__class__.objects.get(pk=instance.pk)
if instance.last_login != old.last_login:
instance.userlogin_set.create(timestamp=instance.last_login)
signals.pre_save.connect(user_presave, sender=User)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4007 次 |
| 最近记录: |