我将Django1.10.5
与python3.6
一起使用。在
我有以下模型类:
class PublishedRecordedActivity(models.Model):
published_details = models.ForeignKey(PublishedDetails, null=True, blank=True, on_delete=models.CASCADE)
timestamp_added = models.DateTimeField(auto_now_add=True)
activity_type = models.IntegerField(null=False, blank=False, default=1)
我要计算当前月份和过去6个月中每个活动类型(1、2、3或4)的记录数。在
例如,整个当月(2019年4月)的计数。在
一个月前的计数(2019年3月的整个月)。在
两个月前(2019年2月整月)的计数等
我可以编写count的查询,但是我不确定如何为每个月添加过滤器。在
以下是我的疑问:
^{pr2}$
首先,找出要过滤的月份。为此,请使用dateutil包中的^{} 函数
然后在过滤器中使用带有^{} 的
^{pr2}$modified_from_datetime
变量完整代码段
更新-1
将“按要素分组”用作
您可以使用Django的
annotate
和TruncMonth
和Count
数据库函数来获得每月的聚合值。下面给出了使用示例即
这将为您提供特定活动类型的每月汇总计数。您可以在
timestamp_added
字段中添加其他应用时间范围的过滤器。在如果你只想在过去的6个月内进行汇总,那就做下面的事情。在
^{pr2}$这对你有帮助。如果需要进一步的帮助,请在下面发表评论
相关问题 更多 >
编程相关推荐