如何在Django中将参数传递给计划的cron任务?

问题描述

我已经建立了一个cron作业,以每分钟减少所有对象的IntegerField。

但是它抛出错误

TypeError: decrement_days_till_study() missing 1 required positional argument: 'Card'

但是我不知道该如何通过。

cron.py

from . models import Card
    
def decrement_days_till_study(Card):
    for card in Card.objects.all():
        if card > 1:
            card.days_till_study -= 10
            card.save()

我的模型与cron.py位于同一文件夹中。

我的设置

  INSTALLED_APPS = [
        'django_crontab'
]

    CRONJOBS = [
    ('*/1 * * * *','spaced_repitition.cron.decrement_days_till_study')]

我通过使cron打印出可以正常工作的字符串来测试了cron。

关于如何解决此问题的任何想法?

感谢阅读。

解决方法

这里不是django专家,但是您似乎通过定义函数变量覆盖了导入。

尝试从函数参数列表中删除Card

from . models import Card

def decrement_days_till_study():
    for card in Card.objects.all():
        if card > 1:
            card.days_till_study -= 10
            card.save()