【发布时间】:2017-05-03 10:25:59
【问题描述】:
如果可以在没有原始 SQL 的情况下将此 PostgreSQL 查询重写为 Django ORM,我自己尝试过,但没有成功。
这是基金的模型
class Fund(models.Model):
name = models.CharField(max_length=320, unique=True)
fund_manager = models.CharField()
..............
这是NAV的模型
class NAV(models.Model):
price = models.DecimalField(max_digits=9, verbose_name=_('NAV'))
date = models.DateField(verbose_name=_('date'))
fund = models.ForeignKey('Fund', related_name='navs')
created_date = models.DateTimeField(default=now)
这是有效的 sql 查询,需要重写为 Django ORM
select * from finance_fund ORDER BY(
(select price from finance_nav where date='2016-11-08' and fund_id=finance_fund.id) /
(select price from finance_nav where date='2016-11-07' and fund_id=finance_fund.id)
)
所以基本上我需要通过外键反向关系的两个简单查询的除法结果排序
提前致谢!
【问题讨论】:
标签: django postgresql django-orm