2017-08-01 52 views
0

所以這個問題更多集中在Django的最佳實踐和建議。在Django中爲用戶安排電子郵件報告的最佳方式

從本質上講,我想安排在Django的電子郵件報告要在兩個事件觸發:

一些統計
  • 週報電子郵件,新聞等
  • 報告在系統觸發事件(即保存在模型上)

這應該通過計劃任務直接在Django中完成嗎?或者還有其他工具可以使用嗎?

回答

1

關於每週計劃任務,最直接的方法可能是創建一個新的自定義管理命令,並使用cron或Windows Task Scheduler調用該命令。這實際上已經在這裏有一個答案,與其他可能的選項一起爲你考慮:

Django - Set Up A Scheduled Job?

注:如果您使用的是virtualenv中,確保有cron的通過python調用管理命令二進制在virtualenv中,而不是系統路徑中的一個。

至於基於應用程序事件或條件,兩種思想觸發動作:

  • 你可以設置爲你的模型post-save signal偵聽器。收到信號後,可以通過接收器發送電子郵件。您可以閱讀信號here
  • Django的send_mail電子郵件包裝非常簡單,您可以直接在視圖中使用它。
+0

感謝您的回答。我已經在不同的節奏上安排了一些計劃任務,因此意識到這種方法的存在。但是,在更具體的問題之後,如果最好在Django中做這種報告和/或如果不這樣做,我們如何掛鉤報告工具來觸發並與Django進行交互。 – NickP

+0

這可能取決於您想要報告的內容。再次,我認爲從操作系統或第三方工具到Django應用程序的最基本和最簡單的「方式」是通過管理命令。您可以通過外部工具將要報告的內容寫入數據庫,然後使用Django格式化並提交報告。 – trpt4him

相關問題