【问题标题】:Django create a new record for each user every monthDjango每月为每个用户创建一条新记录
【发布时间】:2020-06-03 21:23:30
【问题描述】:

标题是不言自明的。我想在每个月初为用户创建一条新记录。在 Django 中实现这一目标的最佳方法是什么?

我最初的想法是运行一个函数,该函数将每隔 x 间隔检查日期时间,然后如果最后一条记录的年份和月份 != 则创建一个新记录。这甚至可能吗?似乎这种不断检查时间效率低下,但我正在努力寻找另一种解决方案。

我的方向正确吗?

【问题讨论】:

  • 您需要急切地创建记录吗?为什么不在需要时创建它?你到底打算用这张唱片做什么?
  • 我正在构建一个 Net Worth 应用程序。我希望该应用程序能够逐月跟踪用户的净资产。自动执行似乎比让用户每个月点击一个按钮更有意义。
  • 但是如果用户不点击任何按钮,数据会不会有变化?
  • 新记录将从上一个复制,然后随着其净值的变化而更新。到月底才能最终保存,旧记录将永远不会再更新。这有意义吗?

标签: python django django-models django-views


【解决方案1】:

在 Web 应用程序中,最好的方法是依靠系统任务调度程序,如 linux 中的 cron,在给定时间执行您的代码。您可以在每天午夜安排您的任务,并检查每个用户是否有本月的记录,如果不存在则创建它。

这是一篇关于如何使用 django https://gutsytechster.wordpress.com/2019/06/24/how-to-setup-a-cron-job-in-django/ 进行 cron 作业的文章

【讨论】:

  • 那么我会编写一个脚本,通过 API 进行调度和连接以创建记录吗?
  • 嗯,不,我不是 django 专家,但我认为您可以直接在服务器上运行脚本以与 django 交互,而无需使用 API。检查这个gutsytechster.wordpress.com/2019/06/24/…
  • 是的,你是对的!我认为 django-background-tasks 是我需要的。我现在正在调查。
  • 很好 :) 让我们知道您成功后是否有帮助 :)
猜你喜欢
  • 2021-01-23
  • 2017-02-19
  • 1970-01-01
  • 1970-01-01
  • 2021-11-04
  • 2016-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多