Python 3.x 计数筛选数据的数量在我的查询中不起作用

Python 3.x 计数筛选数据的数量在我的查询中不起作用,python-3.x,django,django-views,Python 3.x,Django,Django Views,我想计算过滤后的数据并通过警报显示,但在我的 代码计数不起作用。我也会提前一天过滤日期 当前日期。如何处理这个问题 打印输出 使用聚合可能会更容易(如果您不需要原始查询集,只需附加聚合部分): 如果只想计算过滤的修复记录,可以使用: dl1_count = Repair.objects.filter(Deadline__date = datetime.datetime.today() + timedelta(days=1)).count() print(dl1_count) 打印您的代码(我指

我想计算过滤后的数据并通过警报显示,但在我的 代码计数不起作用。我也会提前一天过滤日期 当前日期。如何处理这个问题

打印输出


使用聚合可能会更容易(如果您不需要原始查询集,只需附加聚合部分):


如果只想计算过滤的
修复
记录,可以使用:

dl1_count = Repair.objects.filter(Deadline__date = datetime.datetime.today() + timedelta(days=1)).count()
print(dl1_count)
打印您的代码(我指的是行
dl1=Repair.objects.filter(Deadline\uu date=datetime.datetime.today()+timedelta(days=1))。注释(Count(“id”)
print(dl1)
)不会显示该计数的任何结果,因为您已打印queryset对象,因此如果要使用代码,应将其更改为类似以下内容:

dl1 = Repair.objects.filter(Deadline__date = datetime.datetime.today() + timedelta(days=1)).annotate(Count("id"))

for obj in dl1:
    print(obj.id__count)
因为annotate将该字段添加到对象而不是查询集。

print(dl1[0]。count\u id)
dl1 = Repair.objects.filter(Deadline__date = datetime.datetime.today() + timedelta(days=1))
dl1_count = dl1.aggregate(counted=Count('id'))['counted']  # number of records
dl1_count = Repair.objects.filter(Deadline__date = datetime.datetime.today() + timedelta(days=1)).count()
print(dl1_count)
dl1 = Repair.objects.filter(Deadline__date = datetime.datetime.today() + timedelta(days=1)).annotate(Count("id"))

for obj in dl1:
    print(obj.id__count)