我想從我的模型TradeOrder的數據庫處理查詢:處理Django模型
class TradeOrder(models.Model):
#denoted in 2 three letter tickers with underscore such as anc_btc
pair = models.CharField(max_length=50)
#buy_order or sell_order
order_type = models.CharField(max_length=50)
#number e.g. .3455 or .190
trade_rate = models.PositiveIntegerField()
trade_amount = models.PositiveIntegerField()
#name of the account
trade_order_account = models.CharField(max_length=50)
def __str__(self):
return '%s %s %s %s %s' % (self.pair, self.order_type, self.trade_rate, self.trade_amount, self.trade_order_account)
當我下views.py執行我的應用程序
buyorders=TradeOrder.objects.filter(pair="anc_btc", order_type="buy_order")
我得到看起來名單像這樣:
[<TradeOrder: anc_btc buy_order 7987 7897 a>, <TradeOrder: anc_btc buy_order 7897 789 a>, <TradeOrder: anc_btc buy_order 7897 789 a>]
所以想要處理和優化數據,首先比較每個項目到一個新的訂單
類似:
if new_order_type=="buy_order":
#crosscheck against sell orders
market_sell_orders = TradeOrder.objects.filter(pair="anc_btc", order_type="sell_order", trade_order_account=price)
#now i need to sort the orders for trade rates above/greater than $new_order_price
#how do i do this?
我現在知道,這可以通過添加.order_by('trade_order_price')
到查詢年底完成
if potential_sell_orders is not None:
#trade
do=1
else:
#no sell orders to fill, submit to order book
try:
tradeordersubmit=TradeOrder(pair=order_pair, order_type=order_type, trade_rate=price, trade_amount=quantity, trade_order_account=request.user.username)
tradeordersubmit.save()
order_error=0
except:
order_error="1"
你的實際問題是什麼? – 2015-03-19 06:59:49
我不知道該怎麼做 '[,,]' 我很確定它的名單,但我不知道如何分解它並使用它 –
abyss
2015-03-19 07:04:37
它是'TradeOrder'模型的實例列表,每個數據庫行一個。你可以像在Django教程中學到的那樣處理它們。 – 2015-03-19 07:07:24