如何修改Django QuerySet以获取月度数据而非每日数据
获取月度数据的Django QuerySet修改方案
嘿,要把获取当日数据的QuerySet改成获取月度数据其实超简单,只需要调整过滤条件里的日期匹配规则就行!
原代码回顾
你原来的代码是通过匹配年、月、日三个维度来筛选当日数据:
total_trans_today = Addfuel.objects.filter( date_created__year=datetime.today().date().year, date_created__month=datetime.today().date().month, date_created__day=datetime.today().date().day )
修改后的月度数据查询代码
要获取当前月份的所有数据,只需要去掉对date_created__day的过滤,保留年和月的匹配即可:
from datetime import datetime total_trans_month = Addfuel.objects.filter( date_created__year=datetime.today().date().year, date_created__month=datetime.today().date().month )
额外小技巧
如果需要查询指定月份的数据(而不是当前月),直接传入对应的年份和月份数值就行,比如查询2024年3月的数据:
total_trans_spec_month = Addfuel.objects.filter( date_created__year=2024, date_created__month=3 )
另外,也可以用更简洁的写法,直接调用datetime.today()的year和month属性(因为datetime.today()返回的datetime对象本身就有这些属性,不用转成date对象也可以):
total_trans_month = Addfuel.objects.filter( date_created__year=datetime.today().year, date_created__month=datetime.today().month )
内容的提问来源于stack exchange,提问作者developerone
相关产品推荐
相关产品推荐

