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

How do I pass argument to a scheduled cron task, in Django?

我设置了一个 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。

知道如何解决这个问题吗?

感谢阅读。

这里不是 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()