从作为列表传递的所有符号返回数据(一个最新对象)以进行查询

时间:2017-12-18 12:35:49

标签: python mysql django django-rest-framework

我有一个类似的查询:

EquityIntradayData.objects.using('marketdata').filter(symbol__in=symbol_list).order_by('-date_time')[:1]

Models.py:

class EquityIntradayData(models.Model):
    symbol = models.CharField(db_column='SYMBOL', primary_key=True, max_length=20)  
    date_time = models.DateTimeField(db_column='DATE_TIME')  
    close = models.DecimalField(db_column='CLOSE', max_digits=10, decimal_places=5)  

    class Meta:
        managed = False
        db_table = 'EQUITY_INTRADAY_DATA'
        unique_together = (('symbol', 'date_time'),)

返回响应如下:

[
    {
        "close": "591.00000",
        "symbol": "MPSLTD"
    }
]

我正在过滤一系列符号symbol_list = self.request.GET.getlist('symbol')

我想让它按符号

返回数据(按日​​期只是一个最新的对象)

示例:如果我传入符号列表:['MPSLTD', 'SANDESH']

我应该

[
    {
        "close": "591.00000",
        "symbol": "MPSLTD"
    },
   {
    "close": "783.00000",
    "symbol": "SANDESH"
 }
]

我尽力做到最早,但却碰到了一堵墙。 EquityIntradayData.objects.using('marketdata').filter(symbol__in=symbol_list).distinct().earliest('date_time')

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

您是否尝试过在distinct?

中传递符号字段
EquityIntradayData.objects.using('marketdata').filter(symbol__in=symbol_list).distinct('symbol').order_by('-date_time')[:1]