django - Django 根据重复频率每周、每月或每年自动重新发布数据
问题描述
在我的 django 项目中,我试图根据其重复频率重新发布记录,可能是每天、每周、每月等。假设今天发布了一条记录,它的重复频率是每周一次,我希望该记录继续重新出现每周以“日”和“时间”为基础,与创建它的前一周一样,依此类推,也就是说,旧记录将是新记录,并且根据重复频率,现在将比它更旧的其他记录排在首位.
模型.py
class Menu(models.Model):
none = 0
Daily = 1
Weekly = 7
Monthly = 30
Quarterly = 90
SemiAnual = 180
Yearly = 365
Frequency_Of_Reocurrence = (
(none, "None"),
(Daily, "Daily"),
(Weekly, "Weekly"),
(Monthly, "Monthly"),
(Quarterly, "After 3 Months"),
(SemiAnual, "After 6 Months"),
(Yearly, "After 12 Months")
)
vendor = models.ForeignKey(Vendor, on_delete=models.CASCADE)
name = models.CharField(verbose_name="food name", null=False, blank=False, max_length=100)
description = models.TextField(verbose_name="Food Description", max_length=350, null=False, blank=False)
image = models.ImageField(upload_to=user_directory_path, default='veggies.jpg')
isrecurring = models.BooleanField(default=False)
frequencyofreocurrence = models.IntegerField(choices=Frequency_Of_Recurrence)
datetimecreated = models.DateTimeField(verbose_name='date-time-created', auto_now_add=True)
在我的观点中,我究竟如何才能实现我想要做的事情。
提前致谢。
解决方案
您想设置一个 cron 作业以每天检查,有条件确定特定记录是否需要重新发布,然后重新发布(如果您不希望创建新记录,请更新时间戳)。我不写 Django,所以我不能给出细节。
推荐阅读
- docker - 当 apk 添加失败时,如何在 gliderlabs/alpine Docker 映像中安装 Alpine Linux 软件包?
- android - 如何为 API 级别 < 23 的项目设置重力
- mysql - 需要帮助来定义查询,我试图从 3 个不同的表中获取数据
- android - 在 Flutter ListView 中只重建一行?
- mysql - 以特定方式汇总一列中的值
- c# - ASP.NET MVC 5“当 ModelState 无效时”
- javascript - 以下输出的原因
- jquery - 从多个值 JQuery 中查找单个数据属性值
- css - Wordpress - 自定义 Watson Assistant 插件
- docker - 无法通过使用 hyper-v 在 docker-machines 上运行的 ip 访问 docker swarm 集群