首页 > 解决方案 > 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)

在我的观点中,我究竟如何才能实现我想要做的事情。

提前致谢。

标签: djangopython-3.xdjango-models

解决方案


您想设置一个 cron 作业以每天检查,有条件确定特定记录是否需要重新发布,然后重新发布(如果您不希望创建新记录,请更新时间戳)。我不写 Django,所以我不能给出细节。


推荐阅读