处理Django模型 [英] Processing django models
本文介绍了处理Django模型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试从模型TradeOrder的数据库中处理查询:
I am trying to process a query from my database of model TradeOrder:
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下为我的应用执行
when i execute under views.py for my app
buyorders=TradeOrder.objects.filter(pair="anc_btc", order_type="buy_order")
我得到一个看起来像这样的列表:
i get a list that looks like this:
[<TradeOrder: anc_btc buy_order 7987 7897 a>, <TradeOrder: anc_btc buy_order 7897 789 a>, <TradeOrder: anc_btc buy_order 7897 789 a>]
因此要处理和优化该数据,首先将每个项目与新订单进行比较
so want to process and refine that data, firstly to compare each item to a new order
类似以下内容:
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 ')
到查询末尾
i now know that this can be accomplished by adding .order_by('trade_order_price')
to the end of the query
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"
推荐答案
now i need to sort the orders for trade rates above/greater than $new_order_price
的交易订单进行排序一种适当地使用QuerySet方法:
You should refine your QuerySet appropriately using QuerySet methods:
market_sell_orders = TradeOrder.objects.filter(pair="anc_btc", order_type="sell_order", trade_order_account=price, trade_rate__gt=<trade_rate>).order_by('-trade_rate')
QuerySet的教程此处
You can find the tutorial for QuerySet here
这篇关于处理Django模型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文