Django - 使用 Celery 在 7 天后更新字段值



我今天的问题是我如何使用芹菜在 7 天后更改字段的值

我的模型:

class Episode(models.Model):
availability_free_users = models.DateTimeField(default=datetime.now()+timedelta(days=7))
availability = models.BooleanField(default=False)

所以我想将可用性更新为 true,如果今天日期(只有日期而不是小时(= availability_free_users

首先,该默认值不会达到您的预期。它将在加载时运行一次。您需要将其转换为单独的函数并将函数本身传递给默认值(lambda 在这里有效,但根据我所阅读的内容,显然不推荐使用(。

就芹菜而言,您可以设置一个celery beat任务运行(每天或任何适合您目的的任务运行(,以查询应标记为可用和尚未标记为可用的剧集,然后将它们标记为可用。

请注意,你可以完全使用一个查询集筛选器和更新链来做到这一点,但如果这样做,你在这个模型上的任何信号都不会被触发。为此,您需要遍历查询集并直接在每个模型上保存更改。

相关内容

  • 没有找到相关文章

最新更新