Как я могу найти общее количество пользователей в приложении Django? - PullRequest
1 голос
/ 25 июня 2019

В таблице пользователей Django мы можем проверить last_login, но я хочу проверить общее количество входов в месяц пользователем.

Это любая функция, которую я могу использовать непосредственно в моей системе.

ИЛИ

Нужно ли вносить изменения в виде входа в систему, когда каждый раз, когда пользователь входит в систему, я могу создать запись в Django Model?

Я хочу данныекак это:

Users   JunLogin  FebLogin
Virat    10         30
Sachin   9          11

Пожалуйста, предложите мне лучший способ.

Заранее спасибо

Ответы [ 4 ]

1 голос
/ 25 июня 2019

Вы можете воспользоваться сигналами Джанго и подключиться к сигналу входа

и сохранить необходимую информацию в отдельной модели.

0 голосов
/ 25 июня 2019

Django не предоставляет API для этой цели.

Могут быть некоторые хитрые способы, такие как подсчет сеансов для пользователя, и вы, вероятно, получите, сколько у них логинов, но, тем не менее, если срок ваших сеансов истечет, вы потеряете данные.

Лучшим способом было бы добавить регистратор в ваше представление входа в систему для подсчета каждого успешного входа в систему.

Это не займет много ресурсов, но все же даст полезную информацию.

0 голосов
/ 25 июня 2019

нет доступных методов. Вы можете создать таблицу, в которой при входе пользователя в это время вы увеличиваете число на единицу.

0 голосов
/ 25 июня 2019

Вам нужно сделать отдельную модель для хранения этих деталей:

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'))
...