我有一个名为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和views.py访问。
发布于 2021-06-19 07:09:30
它不是这样工作的,因为您需要设置Django才能使这些命令工作
你有两个选择
发布于 2022-05-13 19:49:39
您应该从以下位置更新主项目中的数据库设置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'db.sqlite3',
}
}至:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}通过添加os.path.join,您可以指定系统应该从哪个目录中获取数据库,因为最初它将在其他pwd中查找db.sqlite3。
https://stackoverflow.com/questions/68043784
复制相似问题