2017-12-18 201 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

相關問題