Задание Cron (с использованием django_cron) не обновляет объекты - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь использовать задание Cron для обновления количества дней, в течение которых каждая запись в моей базе данных была «открыта» (т. Е. Количество дней между сегодняшним днем ​​и датой создания). Логика, которую я использую, заключается в том, что задание cron запускается каждую ночь в 23:00 и обновляет поле days_open (IntegerField) на F ('days_open') + 1 при каждом запуске задания.

Я установил время выполнения раз в минуту для целей тестирования. Я запустил "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 голосов
/ 26 июня 2019

Использовать update_fields во множественном числе, а не update_field.

Метод save базового класса django.db.models.base.Model не поддерживает ни одно ключевое словоаргументы, отличные от того, что есть в определении функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...