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

Best way to schedule email reports to users in Django

所以这个问题更侧重于 Django 的最佳实践和建议。

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

是否应该通过计划任务直接在 Django 中完成?或者还有其他可以使用的工具吗?

关于每周计划的任务,最直接的方法可能是创建一个新的自定义管理命令,并让 cron 或 Windows 任务计划程序调用该命令。这实际上已经在这里有了答案,还有其他可能的选择供您考虑:

Django - Set Up A Scheduled Job?

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

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

  • 您可以为 post-save signal on your model. When the signal is received, the email could be sent via the receiver. You can read up on signals here.
  • 设置监听器
  • Django 的 send_mail 电子邮件包装器非常简单,您也可以直接在视图中使用它。