我今天的问题是我如何使用芹菜在 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
任务运行(每天或任何适合您目的的任务运行(,以查询应标记为可用和尚未标记为可用的剧集,然后将它们标记为可用。
请注意,你可以完全使用一个查询集筛选器和更新链来做到这一点,但如果这样做,你在这个模型上的任何信号都不会被触发。为此,您需要遍历查询集并直接在每个模型上保存更改。