2017-12-18 199 views
0

我有这样一个查询:返回从一个列表传递给查询所有符号的数据(一个最新的对象)

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" 
    } 
] 

我正在筛选符号列表​​

我希望它返回我的数据(只是一个最新的日期对象),每符号

例如:如果我的符号列表传递:['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')

我该如何做到这一点?

回答

0

你是否尝试过在独特的内部传递符号字段?

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

我已经尝试过,这里的问题是,不同的约束不适用于与MySQL领域。 – Zed

+0

'此数据库后端不支持DISTINCT ON字段' – Zed

相关问题