首页 > 解决方案 > django 注释 max min AND first last

问题描述

从每分钟存储 BTC 价格的数据表中,我试图获取一个查询集对象,该对象按小时聚合值(需要最小值、最大值、第一个和最后一个)。它适用于最大值和最小值

类 BTCDayDataCandles(APIView): authentification_classes = [] permission_classes = []

def get(self, request, format=None):
    now = datetime.now()
    BTCData = BTCminute.objects\
        .annotate(test = Trunc('dateTimeEntry', 'hour'))\
        .order_by('-test')\
        .values('test')\
        .annotate(Max('price'), Min('price'))

    data = {
       'BTCData': BTCData,
    }
    print(BTCData)
    return Response(data)

如何在查询集对象中添加每小时的第一个和最后一个价格值?

标签: djangoannotationsaggregation

解决方案


我认为您可以尝试使用Django 文档 返回与查询集匹配的第一个对象,如果没有匹配的对象,则返回 None。如果 QuerySet 没有定义排序,则查询集会自动按主键排序。

.


推荐阅读