Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无法根据创建日期筛选我的Django模型依赖项_Python_Django_Datetime - Fatal编程技术网

Python 无法根据创建日期筛选我的Django模型依赖项

Python 无法根据创建日期筛选我的Django模型依赖项,python,django,datetime,Python,Django,Datetime,我正在试着做一张图表。我的数据库已创建\u日期。我每天收到大约150次产品数据,我希望看到我的数据每天增加和减少。我的前端和Django模板没有问题(我尝试手动数据,效果很好),我只想看看最后7天的图表 当我使用Products.objects.filter(created\u dates=days)filter方法时,我得到的是空的Queryset 我已经尝试了created\u dates\uu gte=startdate,created\u lte=enddate它返回空查询集 我还尝试了

我正在试着做一张图表。我的数据库已创建\u日期。我每天收到大约150次产品数据,我希望看到我的数据每天增加和减少。我的前端和Django模板没有问题(我尝试手动数据,效果很好),我只想看看最后7天的图表

当我使用
Products.objects.filter(created\u dates=days)
filter方法时,我得到的是空的Queryset

我已经尝试了
created\u dates\uu gte=startdate,created\u lte=enddate
它返回空查询集

我还尝试了
created\u dates\u range
,但也没有答案

我只是从
created\u dates\u gte=days
中获取数据,但我不想要这些数据

view.py

在我的数据库中,我有数千个数据,每天大约150个数据。我的创建日期列格式如下

创建日期列:
2020-10-19 09:39:19.894184


那么我的代码怎么了?。您能帮忙吗?

您正在尝试比较DateTimeField类型(创建的日期)和Date类型(week_days是天数列表),所以您可能应该尝试查找日期

product_num = Products.objects.filter(created_dates__date=days)

此外,您应该考虑使用组来开始使用COUNT()数据库函数,而不是在几天内迭代。

这里有一个很好的解释:

您应该能够通过一个聚合查询来实现这一点:

import datetime
from django.db.models import Count


def data_chart(request):
    cutoff = datetime.date.today() - datetime.timedelta(days=7)
    raw_data = (
        Products.objects.filter(created_dates__gte=cutoff)
        .values_list("created_dates__date")
        .annotate(count=Count("id"))
        .values_list("created_dates__date", "count")
    )
    data = [{"day": str(date), "value": value} for (date, value) in raw_data]
    return render(request, "chartpage.html", {"data": data})

也展示你的模型。
created_dates
datetime字段吗?我这样的模型created_dates=models.datetime字段(auto_now_add=True,verbose_name=(“Oluşturma Tarihi”)、null=True)再次像这样返回,所以没有解决方案yetI会尝试让您知道一天的结束,我不知道它是如何工作的,但效果很好。图表准备得很好。但是你写的日期和计数都错了。它应该是“day”:str(day),“value”:value,因为它作为datetime类返回,所以我使用str(day)。非常感谢。@MuratDemir啊,是的。修正了输入错误:)
import datetime
from django.db.models import Count


def data_chart(request):
    cutoff = datetime.date.today() - datetime.timedelta(days=7)
    raw_data = (
        Products.objects.filter(created_dates__gte=cutoff)
        .values_list("created_dates__date")
        .annotate(count=Count("id"))
        .values_list("created_dates__date", "count")
    )
    data = [{"day": str(date), "value": value} for (date, value) in raw_data]
    return render(request, "chartpage.html", {"data": data})