【问题标题】:Django-crontab can't make model queryDjango-crontab 无法进行模型查询
【发布时间】:2021-09-03 16:48:26
【问题描述】:

我在工具应用程序中有一个名为 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 访问。

【问题讨论】:

    标签: django django-models cron django-cron django-crontab


    【解决方案1】:

    那样不行,因为你需要设置 Django 才能让这些命令工作

    你有两个选择

    1. 将此实现为management command

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

       import django
       os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings")
       django.setup()
      

    【讨论】:

    • 我尝试了这两种方法,但不幸的是,该包似乎仍然无法查询我的数据库。
    猜你喜欢
    • 2021-06-08
    • 2018-11-19
    • 1970-01-01
    • 2019-06-06
    • 2017-08-10
    • 2015-07-13
    • 1970-01-01
    • 2020-02-22
    相关资源
    最近更新 更多