背景 我需要查询分布在多个表中的数据。我的模型如下:
l = {'node-1':'node-1'}
任务 我正在尝试从前端传递客户ID,并且打算捕获该客户所有帐户所拥有的所有头寸。
如果我运行以下查询,则可以使用SQL进行此操作:
class Clients(models.Model):
display_name=models.CharField(max_length=70, null=True)
CLIENTSTATUS=(('unknown', 'unknown'), ('active', 'active'), ('inactive', 'inactive'), ('prospect', 'prospect'), ('coi', 'center of influence'))
client_status=models.CharField(max_length=25, choices=CLIENTSTATUS, default=CLIENTSTATUS[0][0])
class Accounts(models.Model):
nickname=models.CharField(max_length=45, null=True)
currency=models.CharField(max_length=3, null=True)
class Client_Accounts(models.Model):
client=models.ForeignKey(Clients, on_delete=models.CASCADE)
account=models.ForeignKey(Accounts, on_delete=models.CASCADE)
class Positions(models.Model):
account=models.ForeignKey(Accounts, on_delete=models.CASCADE)
security_name=models.CharField(max_length=30, null=True)
cusip=models.CharField(max_length=9, null=True)
file_date=models.DateField(null=True)
market_price=models.DecimalField(max_digits=12, decimal_places=5, blank=True, null=True)
quantity=models.DecimalField(max_digits=13,decimal_places=3,blank=True, null=True)
market_value_trade_date=models.DecimalField(max_digits=14,decimal_places=2,blank=True, null=True)
class Securities(models.Model):
cusip=models.CharField(max_length=9, null=True)
short_name=models.CharField(max_length=45, null=True)
预期结果 我正在查看的JSON是这样的:
select
cl.id as client_id,
cl.display_name,
ac.id as account_no,
ac.nickname,
pos.cusip,
sec.short_name,
pos.market_price,
pos.market_value_trade_date,
pos.quantity
from
datahub_accounts ac
join
datahub_client_accounts cl_ac
on
ac.id=cl_ac.account_id
join
datahub_clients cl
on
cl_ac.client_id=cl.id
join
datahub_positions pos
on
pos.account_id=ac.id
join
datahub_securities sec
on
pos.cusip=sec.cusip
where
cl.id = 15
and
pos.file_date="2018-11-12"
group by
cl.id,
cl.display_name,
ac.id,
pos.cusip,
sec.short_name,
pos.market_price,
pos.market_value_trade_date,
pos.quantity
到目前为止完成 我在views.js中编写了此函数,并且能够遍历客户端的位置并获取所有位置数据。
{
client_id=15,
display_name="Client's Name",
{
account_no=19,
account_name="first account"
{
cusip="cusip number 1"
short_name="cusip 1 short name"
market_price=17.59
market_value_trade_date=7724.72
quantity=446.00
},
{
cusip="cusip number 2"
short_name="cusip 2 short name"
market_price=66.18
market_value_trade_date=13897.80
quantity=210.00
}
}
}
问题陈述 但是,我不确定如何: