嗨我有两个以下模型
class Store(models.Model):
store_name = models.CharField(max_length=100)
class Meta:
db_table = 'stores'
class Sales(models.Model):
store = models.ForeignKey(Store, on_delete=models.CASCADE, related_field='sales')
product_id = models.BigInteger()
sale_date = models.DateTimeField()
total_mrp = models.FloatField()
我试图获取每家商店每天的总和(total_mrp),但似乎无法在我的销售表中按日期列分组
我使用的是django_rest_framework,我尝试使用以下序列化器来完成上面的操作
class SalesSerializer(serializers.RelatedField):
queryset = Sales.objects.all()
def to_representation(self, value):
data = self.queryset.annotate(day=functions.ExtractWeekDay('sale_date'), total_sale=Sum('total_mrp'))
return data.values('day', 'total_mrp')
class StoreSerializer(serializers.ModelSerializer):
primary_sales = SalesSerializer(many=False)
class Meta:
model = Store
exclude = ['id']
输出结果并没有像我期望的那样分组,相反,我得到了每个商店的主要销售额的相同数据。
1条答案
按热度按时间31moq8wy1#
第一个月
或者,如果您希望专门按一周中的某一天进行聚合
self.queryset.annotate(sale_day=functions.ExtractWeek('sale_date')).values('sale_day').annotate(total_sale=Sum('total_mrp'))
像这样的事情也许可以解决你的问题:)