Cron作业(使用django_cron)未更新对象

时间:2019-06-25 21:24:34

标签: python django

我正在尝试使用Cron Job更新数据库中每个记录已“打开”的天数(即,从今天到创建日期的天数)。我使用的逻辑是让cron作业每天晚上23:00运行,并在每次作业运行时以F('days_open')+ 1更新days_open字段(IntegerField)。

出于测试目的,我将运行时间设置为每分钟一次。我已经运行“ python manage.py runcrons”“ request_form_app.cron.DaysOpenCronJob”和“ python manage.py runcrons --force“强制执行作业,我没有收到任何错误,但该字段未在任何记录上更新。

cron.py
from django_cron import CronJobBase, Schedule
from django.db.models import F

class DaysOpenCronJob(CronJobBase):
    RUN_EVERY_MINS = 1
    # RUN_AT_TIMES = ['23:00']

    schedule = Schedule(run_at_times=RUN_EVERY_MINS) 
    code = 'request_form_app.cron.DaysOpenCronJob'

    def update_days(self,*args,**kwargs):
        data_request = Request.objects.all()
        for record in data_request:
            record.days_open = F('days_open') + 1 
            record.save(update_field=['days_open'])

1 个答案:

答案 0 :(得分:0)

使用update_fields复数,而不是update_field

基类django.db.models.base.Modelsave方法除函数定义中的内容外,不支持任何关键字参数。