首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django-crontab无法进行模型查询

Django-crontab无法进行模型查询
EN

Stack Overflow用户
提问于 2021-06-19 05:03:32
回答 2查看 245关注 0票数 0

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

代码语言:javascript
复制
CRONJOBS = [
    ('*/1 * * * *', 'tools.cron.reset_api_calls','>>logs.log')
]

职能-

代码语言:javascript
复制
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)

模型-

代码语言:javascript
复制
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和views.py访问。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-06-19 07:09:30

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

你有两个选择

  1. 将其实现为管理命令
  2. 手动设置Django作为脚本的开始。 导入django os.environ.setdefault("DJANGO_SETTINGS_MODULE","project.settings") django.setup()
票数 2
EN

Stack Overflow用户

发布于 2022-05-13 19:49:39

您应该从以下位置更新主项目中的数据库设置:

代码语言:javascript
复制
DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.sqlite3',
    'NAME': 'db.sqlite3',
  }
}

至:

代码语言:javascript
复制
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

通过添加os.path.join,您可以指定系统应该从哪个目录中获取数据库,因为最初它将在其他pwd中查找db.sqlite3。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68043784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档