django - 如何打印上个月创建的对象而不是使用 datetime.timedelta(days=30)
问题描述
我正在制作一个 Django 应用程序来打印每个月的费用
很长一段时间以来,我一直在搜索如何打印在特定月份(或可能是上个月)创建的对象(费用),我检查了许多与此类似的堆栈溢出问题,但无法找到合适的答案。
很多人用
datetime.timedelta(days=30)
但是这种方法如何才能正确打印特定月份的费用。
我想使用类似的方法
datetime.timedelta(previous month)
有没有办法做到这一点?
解决方案
这是一个很好的方法
首先,在您的views.py文件中:
- 从宣布今天的日期开始
today = datetime.date.today()
- 需要过滤掉上个月创建的对象(这里以五月为例)
may_month_expenses =
Expenses.objects.filter(created__month='05',created__year=today.year)
解释:
费用是模型的名称
objects.filter()用于打印满足括号中条件的对象。
created是费用中的DateTimeField
created__month='05'指定对象应该是在 5 月创建的(第 5 个月)
created__year = today.year很重要,因为您只想打印在今年 5 月(2021 年)创建的对象。
这将打印在 2021 年 5 月创建的对象
推荐阅读
- java - 无法启动活动组件信息 [使用 Intent 在“活动”之间移动]
- algorithm - 给定一个网络 N 和一条边 (x, y) ∈ E,确定边是否穿过 N 的每个 mincut 的最佳算法是什么
- html - HTML5 输入范围滑块步长,如 5 10 25 50 100 1000
- css - 创建具有有限标准 CSS 属性的圆形图像?
- php - 更改 auth_redirect() 页面
- google-cloud-platform - GCP JSON API:如何向所有经过身份验证的用户授予存储桶编辑器权限 [创建和编辑自己的私有存储桶]
- javascript - Phaser 3 中的组或容器是否可拖动?
- java - JMeter 线程不会被终止
- c# - 在 Unity / Android 中从网络共享读取 PDF
- search - 如何在此处的地图中离线搜索位置?