在Django User表中,我们可以检查last_login, 但是我想查看用户当月的登录总数。
是我可以直接在系统中使用的任何功能。
OR
我需要在登录视图中进行更改吗,每当每次用户登录时,我都可以在Django模型中创建一个条目吗?
我想要这样的数据:
Users JunLogin FebLogin
Virat 10 30
Sachin 9 11
请给我建议最好的方法。
预先感谢
答案 0 :(得分:1)
您可以利用Django signals并连接到the login signal
并将所需的信息存储在单独的模型中。
答案 1 :(得分:0)
您需要创建一个单独的模型来存储这些详细信息:
class LoginDetails(models.Model):
user_id = models.ForeignKey(User, on_delete=models.CASCADE)
login_time = models.DateTimeField(default=datetime.now(), blank=False)
#Query to calculate the users login count
from django.db.models import Count
from datetime import datetime, timedelta
last_month = datetime.today() - timedelta(days=30)
login_details = LoginDetails.objects.filter(my_date__gte=last_month).values('user_id').annotate(total=Count('user_id'))
答案 2 :(得分:0)
Django为此不提供任何API。
可能会有一些棘手的方法,例如计算与用户的会话数,您可能会获得他们的登录次数,但是,如果会话终止,则将丢失数据。
最好的方法是在登录视图中添加一个记录器,以计算每次成功登录的次数。
它不会占用很多资源,但是会产生一些有用的信息。
答案 3 :(得分:0)
没有任何可用的方法。您可以创建一个表,在该表中,当用户登录时,该表将增加一。