我正在尝试使用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'])
答案 0 :(得分:0)
使用update_fields
复数,而不是update_field
。
基类django.db.models.base.Model的save
方法除函数定义中的内容外,不支持任何关键字参数。