有什么方法可以查看用户是否在一段时间内不活动?例如,Twitter在闲置一段时间后向其用户发送电子邮件。我想要实现一个类似的功能,如果用户在30天内一直处于非活动状态,则会发送一封电子邮件“Hello User,查看您的朋友发布的内容”如何实现此目的?Django用户无活动
回答
您可以编写一个管理命令,检查上次登录的用户以及日期是否大于30的情况,发送电子邮件。 (您可以实现这为每天运行一个cron)
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()
如果在限定“活动”任何其他条件,您可以根据您的查询集进行筛选。
嗯,django.contrib.auth.models.User
有一个可能对您有用的last_login
字段。
无论你在哪里,请检查last_login
日期User
,你现在会离开你的网站多久。
希望这会有所帮助!
嘿,感谢您的快速回复,我在django管理页面上找到了所有这些信息,我就投了你的答案。看看上面的karthikr的回答,这更多的是我正在寻找的答案! :) – noahandthewhale
我很高兴你发现你的答案。我只是建议你该做什么。感谢updvote。 –
在阅读了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. Django将用户保存为不活动
- 3. django注册非活动用户溢出
- 4. Django:收集用户,对象活动流
- 5. 在Django中存储用户活动
- 6. django电子邮件帐户活动
- 7. Django:使用Django活动流的网址
- 8. CRM用户活动
- 9. 活动用户数
- 10. 活动用户和非活动用户的一个SQL查询?
- 11. 如何重新激活用户django
- 12. Django auth_user - 排除非活动用户的最佳做法
- 13. 记录Django用户活动的正确方法
- 14. Django社交认证和非活动用户
- 15. django注册,django.contrib.auth登录和用户“活动”标志
- 16. Django用户的在线状态和上次活动时间
- 17. Paho客户端超时为无活动
- 18. 覆盖Django用户管理器以仅返回查询中的活动用户
- 19. 无法从主用户界面启动listview活动* ANDROID *
- 20. 用户活动算法
- 21. 登录用户的活动
- 22. Laravel跟踪用户活动
- 23. 计数活动用户
- 24. 记录用户活动
- 25. 用户离开活动
- 26. 检测用户活动
- 27. 用户在活动变量
- 28. Laravel用户活动属性
- 29. Dailymotion图API用户活动
- 30. Symfony2:登录用户活动
感谢您的快速回复!我正在寻找这样的东西,我会试试看看它是否有效!我会告诉你! – noahandthewhale
太好了。让我知道 – karthikr
在这种情况下,当至少一个月过去时(每当cron作业设置时),每天都会通知非活动用户。不是检查“小于”条件,最好检查“等于”条件,即在30天过后,用户得到通知。 –