django - 如果用户在使用 Django ORM 的日期范围内有产品,如何计算用户?
问题描述
所以假设我有这两个模型:
class User(models.Model):
name = models.CharField()
dob = models.DateField()
class Product(models.Model):
user = ForeignKey(User)
created = models.DateTimeField()
name = models.CharField()
amount = models.DecimalField()
用户可以创建产品,创建产品时会保存。我想问的是,是否可以统计一个时间范围内拥有产品的用户数量?
我将 GenericViewSet 用于视图并在其中创建操作以返回数据。我希望视图返回如下所示的数据:
{
'data': [{
'date': "2020-01-01",
'total_users': 10
}, {
'date': "2020-01-02",
'total_users': 17
}]
}
我知道我可以使用这样的日期范围过滤产品以获取产品:
Product.objects.filter(created__range=["2020-01-01", "2020-02-01"])
但是如何计算在该范围内拥有产品的用户总数?是否可以为此做注释?在此先感谢您的帮助!
解决方案
from django.db import Count
Product.objects.filter(
created__range=("2020-01-01", "2020-02-01")
).values(
date=F('created')
).annotation(
total_users=Count('user__id')
)
推荐阅读
- javascript - Css 变量插值样式组件
- android - 如何在 android studio 中为没有 Google play 服务的设备获取 FCM 令牌?
- postgresql - 可以在发送到 postgres 之前休眠嵌入查询的值,而不是发送带有 where c.col= 的查询吗?
- r - 将行矩阵的元素与对应列的另一个矩阵相加
- javascript - 创建动态表,Object.keys 不允许返回表的行反应
- typescript - 如何从 TypeScript 编译器 API 分析 Type 对象?
- php - 在谷歌上 https 重定向后页面返回 500 错误,但在浏览器中有效
- java - 使用 Spring SOAP 解码 202 接受的响应
- r - 我可以在因子变量上拆分 describe() 吗?
- reactjs - React Modal 与 axios 无限循环