django - 如果没有给定日期范围的结果和 django 注释的 0 结果,如何显示?
问题描述
结果显示正确但如果没有结果如何显示日期和 0 结果
pre_days = datetime.datetime.today() - timedelta(days=6)
today_now = datetime.datetime.today()
enquiry_chart = All_enquiries.objects.filter(enquired_at__range=[pre_days, today_now]).values('enquired_at__date').annotate(enquired=Count('id'))
解决方案
你没有。数据库使用最小世界假设。这意味着如果不存在数据,则它不存在。
但是,您可以自己添加额外的值。例如:
num_days = 6
today_now = datetime.datetime.today()
pre_days = today_now - timedelta(days=num_days)
temp = All_enquiries.objects.filter(
enquired_at__range=[pre_days, today_now]
).values('enquired_at__date').annotate(
enquired=Count('id')
)
tempdict = {
row['enquired_at__date']: row['enquired']
for row in temp
}
result = [
{
'enquired_at__date': (pre_days+timedelta(days=k)).date(),
'enquired': tempdict.get((pre_days+timedelta(days=k)).date(), 0)
}
for k in range(num_days+1)
]
因此,我们首先构建一个字典,其中我们将日期映射到记录数,然后我们再次构建一个记录列表,我们将在其中使用零作为缺失值。
推荐阅读
- javascript - 消除渲染阻塞资源 Wordpress
- node.js - 使用 Node.js 和 TypeScript 从标准输入获取值
- css - 随着窗口大小减小到 500 像素,滑块向左拉
- python - 将浮点数转换为二进制的函数中的解包错误
- git - IntelliJ IDEA 2019+ Git“提交目录”显示排除的 Maven 目标文件夹
- r - 在 R 中使用 cat 函数打印矢量 - 如何避免丢失元素名称
- c# - UWP 树视图崩溃
- g1ant - 什么是 val 函数,这个 ‴return $('#q').val();‴ 在这段代码中是什么意思?
- python - 如何要求端点的“fask_restplus”两个字段之一
- symmetricds - 如何修复 SymmetricDS 中的 unicode 数据错误