我今天的问题是我如何在7天后使用芹菜改变字段值
我的模特:
class Episode(models.Model):
availability_free_users = models.DateTimeField(default=datetime.now()+timedelta(days=7))
availability = models.BooleanField(default=False)
因此,如果今天日期(仅日期而不是小时)= Availability_free_users,我想将可用性更新为true
答案 0 :(得分:1)
首先,该默认设置不会满足您的期望。它将在加载时运行一次。您需要将其转换为一个单独的函数,并将该函数本身传递给默认值(lambda可以在此处使用,但根据我所读的内容,显然不建议这样做)。
就芹菜而言,您可以设置celery beat
任务运行(每天或任何适合您的目的),查询要标记为可用和尚未使用的情节,然后将其标记为可用。
请注意,您可以完全使用一个queryset过滤器和更新链来完成此操作,但是如果您这样做,将不会触发此模型上的任何信号。为此,您需要遍历查询集并将更改直接保存在每个模型上。