有什麼方法可以查看用戶是否在一段時間內不活動?例如,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天過後,用戶得到通知。 –