django - 如何获取返回的查询集的 db id/pk?
问题描述
我有一个模型查询,它返回数据库中每一天的最大值,但它只返回日期和计数。我需要数据库中的 id/pk,但我不知道如何收集它。
from django.db import connection
from datetime import datetime, timedelta, date
def query(request):
test = NetworkStats.objects.extra(select={'day': connection.ops.date_trunc_sql(
'day', 'date')}).values('day').annotate(online=Max('online'))
for obj in test:
print(obj)
上面的代码打印出以下内容:
{'day': datetime.datetime(2021, 4, 22, 0, 0, tzinfo=), 'online': 485}
{'day': datetime.datetime(2021, 4, 23, 0, 0, tzinfo=), 'online': 466}
模型.py:
class NetworkStats(models.Model):
online = models.IntegerField()
cores = models.IntegerField()
memory = models.FloatField()
disk = models.FloatField()
date = models.DateTimeField(auto_now=True)
但我特别需要返回这些值的 id/pk。我怎样才能做到这一点?
因此,需要这样做的想法是,我每 15 秒使用任务调度程序查询一个值(在白天定期更改),以将其保存到我的数据库中。原因是我想获取每天的最大值,然后删除所有其他不是最大值的记录,这样我的数据库就不会用所有这些数据填满我的磁盘。现在我每天看 8 GB,因为我实际上只需要每天的最大值,而且最多应该在几个字节/kb 左右。
test
是这个django 的修改版本 - 获得几个时期的最大值
解决方案
推荐阅读
- java - 如何将“hh:mm:ss”转换为sql更新间隔
- r - 如何从R中的逻辑回归中获得中位数优势比?
- javascript - Express res.render 渲染错误的文件
- sql - 使用 DBplyr 连接到数据库
- javascript - 尝试从 MediaWiki API 获取一条数据时出现“TypeError:无法读取未定义的属性“0”
- javascript - 为什么我 *inconsistently* 得到 DOMException: Blocked a frame with origin "https://ec2b.foo.com" from access a cross-origin frame
- stock - GNUCASH:无法将股票价格从 csv 导入到 gnucash 股票账户
- regex - 正则表达式捕获一组必须以特定单词结尾的分隔单词
- python - 问题从 Pandas 列中创建数据框 - Python
- c# - 在 Excel-VBA 中引用时,在 C# 中创建的 DLL 不显示成员