在Django中为用户安排电子邮件报告的最佳方式

在Django中为用户安排电子邮件报告的最佳方式,django,email,html-email,reporting,Django,Email,Html Email,Reporting,因此,这个问题更多地集中在Django的最佳实践和建议上 基本上,我希望在两个事件上触发Django的电子邮件报告: 每周报告电子邮件,包括一些统计数据、新闻等 系统中事件触发的报告,即模型上的保存 这是否应该通过计划任务直接在Django中完成?或者可以使用其他工具吗?对于每周计划的任务,最简单的方法可能是创建一个新的自定义管理命令,并让cron或Windows任务调度器调用该命令。这实际上已经有了答案,还有其他可能的选项供您考虑: 注意:如果您使用的是virtualenv,请确保cron通过

因此,这个问题更多地集中在Django的最佳实践和建议上

基本上,我希望在两个事件上触发Django的电子邮件报告:

每周报告电子邮件,包括一些统计数据、新闻等 系统中事件触发的报告,即模型上的保存
这是否应该通过计划任务直接在Django中完成?或者可以使用其他工具吗?

对于每周计划的任务,最简单的方法可能是创建一个新的自定义管理命令,并让cron或Windows任务调度器调用该命令。这实际上已经有了答案,还有其他可能的选项供您考虑:

注意:如果您使用的是virtualenv,请确保cron通过virtualenv中的python二进制文件(而不是系统路径中的二进制文件)调用management命令

对于基于应用程序事件或条件的触发操作,有两种想法:

您可以在您的模型上设置一个侦听器。收到信号后,可以通过接收器发送电子邮件。你可以读出信号。 Django的电子邮件包装非常简单,您也可以在视图中直接使用它。
谢谢你的回答。我已经在不同的cadence上安排了许多任务,所以我知道这种方法是存在的。然而,在更具体的问题之后,如果最好用Django和/或不使用Django进行这种报告,那么如何使用报告工具触发Django并与之交互。这可能在很大程度上取决于您想要报告的内容。同样,我认为从操作系统或第三方工具进入Django应用程序的最基本和最简单的方法是通过管理命令。您可以通过外部工具将想要报告的内容写入数据库,然后使用Django格式化并交付报告。