Есть ли способ узнать, не работает ли пользователь в течение определенного времени? Например, Twitter отправляет электронное письмо своим пользователям через определенное время бездействия. Я хотел бы реализовать аналогичную функцию, если если пользователь неактивен в течение 30 дней, отправляется сообщение «Привет, пользователь, проверьте, что ваши друзья отправляли». Как я могу это реализовать?Неактивность пользователя Django
ответ
Вы можете написать команду управления, которая проверяет вход пользователя в последний раз и если дни больше 30, отправьте электронное письмо. (Вы могли бы реализовать это как хроны, который работает каждый день)
import datetime
from django.core.management.base import BaseCommand
def compute_inactivity():
inactive_users = User.objects.filter(last_login__lt=datetime.datetime.now() - datetime.timedelta(months=1))
#send out emails to these users
class Command(BaseCommand):
def handle(self, **options):
compute_inactivity()
Если у вас есть какие-либо другие критерии, которые определяют «активность», вы можете отфильтровать ваш QuerySet на его основе.
Ну, django.contrib.auth.models.User
имеет поле last_login
, которое может быть полезно вам.
Просто, где бы вы ни находились, отметьте last_login
датой User
, и вы теперь будете, как долго он был вдали от вашего сайта.
Надеюсь, это поможет!
эй, спасибо за быстрый ответ, я нашел всю эту информацию на странице администрирования django, я проголосовал за ваш ответ. Проверьте ответ karthikr выше, это был больше ответ, который я искал! :) – noahandthewhale
Я рад, что вы нашли ответ. Мое было только предложить вам, что делать. Спасибо за обновление. –
После прочтения ответа karthikr и предложения Aidas Bendoraitis, я написал решение для коррекции ниже. Это очень похоже на ответ Karthikr, за исключением вместо того, чтобы использовать __lt оператор сравнения богатых, используйте оператор __eq:
import datetime
from django.core.management.base import BaseCommand
def compute_inactivity():
inactive_users = User.objects.filter(last_login__eq=datetime.datetime.now() - datetime.timedelta(months=1))
#send out emails to these users
class Command(BaseCommand):
def handle(self, **options):
compute_inactivity()
Мой подход был бы для отправки уведомлений пользователям, когда именно через 30 дней пройти с момента последнего входа в систему. Для этого вам нужно будет создать команду управления и запустить ее как задание cron ежедневно.
import datetime
from django.core.management.base import BaseCommand
def compute_inactivity():
a_month_ago = datetime.datetime.now() - datetime.timedelta(days=30)
inactive_users = User.objects.filter(
last_login__year=a_month_ago.year,
last_login__month=a_month_ago.month,
last_login__day=a_month_ago.day,
)
#send out emails to these users
class Command(BaseCommand):
def handle(self, **options):
compute_inactivity()
- 1. django увеличить неактивность таймаут
- 2. Неактивность пользователя в android?
- 3. андроид обнаруживает неактивность пользователя после нажатия клавиши
- 4. Как обнаружить неактивность пользователя в Qt?
- 5. Как обнаружить неактивность пользователя в книге Excel
- 6. Неактивность и активность WPF
- 7. Режим и неактивность WCFTimeout
- 8. Неактивность, отключение от AppMeasurementService
- 9. таймаут соединения mysql, неактивность
- 10. Неактивность приложения WPF
- 11. Как обнаружить неактивность пользователя в моем приложении (windows mobile, C#)
- 12. Каков наилучший способ обнаружить неактивность пользователя в приложении Silverlight?
- 13. Java обнаруживает неактивность в Windows
- 14. Как обнаружить неактивность пользователей в Android
- 15. получить контекст из класса неактивности в неактивность
- 16. Тестирование на неактивность в Python на Mac
- 17. libCurl загрузить данные неактивность таймаут не работает
- 18. Обнаружение языка пользователя Django
- 19. Идентификатор пользователя Django равен
- 20. Django Tastypie Регистрация пользователя
- 21. django сигналы браузеру пользователя
- 22. Django ManyToManyField добавить пользователя
- 23. Расширение модели пользователя Django
- 24. Django редактирование сообщений пользователя
- 25. Django, Управление данными пользователя
- 26. Проблема UserCreationForm пользователя django
- 27. django различная аутентификация пользователя
- 28. Обновление пользователя в django
- 29. Регистрация пользователя Django allauth
- 30. Авторизация пользователя Django
благодарит за быстрый ответ! Я искал что-то вроде этого, я собираюсь попробовать это и посмотреть, работает ли это! Я дам Вам знать! – noahandthewhale
Отлично. Дайте мне знать – karthikr
При этом условии неактивные пользователи будут уведомляться каждый день, когда пройдет не менее месяца (каждый момент задается задание cron). Вместо того, чтобы проверять условие «меньше», лучше проверить условие «равно», т. Е. Когда прошло 30 дней, пользователь получает уведомление. –