0

我在工具应用程序中有一个名为ApiKeys的模型,并尝试在特定时间间隔内更新模型。为此,我使用了 django-crontab。

CRONJOBS = [
    ('*/1 * * * *', 'tools.cron.reset_api_calls','>>logs.log')
]

功能 -

from .models import ApiKeys

def reset_api_calls():
    try:
        keys = ApiKeys.objects.all()
            for key in keys:
                key.api_calls = 0
                key.save()
    except Exception as e:
        print(e)

模型 -

class ApiKeys(models.Model):
    key_token = models.CharField(max_length=50, primary_key=True)
    api_calls = models.IntegerField(default=0)
    las_used_date = models.DateTimeField(default=timezone.now)

但它给出了错误日志 -no such table: tools_apikeys

注意:该表确实存在于数据库中,也可以通过 django-shell 和 views.py 访问。

4

1 回答 1

1

它不是那样工作的,因为您需要设置 Django 才能使这些命令工作

你有2个选择

  1. 将此作为管理命令实施

  2. 手动设置 Django 作为脚本的开始。

     import django
     os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings")
     django.setup()
    
于 2021-06-19T07:09:30.027 回答