为了账号安全,请及时绑定邮箱和手机立即绑定

Django - 注释最新的子列值以进行查询

Django - 注释最新的子列值以进行查询

慕森王 2021-09-14 10:40:15
我有一个 Trade,它是 TradeLeg 的父级。我现在正在查询交易,我需要注释添加到此查询的最新 TradeLeg 的“日期”。这是我的模型:class Trade(models.Model):    name = models.CharField(        default='',        max_length=50,        blank=True,    )    date = models.DateField(        default='',        blank=True,        null=True,    )Class TradeLeg(models.Model):    trade = models.ForeignKey(        Trade,        on_delete=models.CASCADE    )    date = models.DateField(        default='',        blank=True,        null=True,    )这是我的错误查询:trades = Trade.objects.all().annotate(latest_leg_date='tradeleg__date__first')
查看完整描述

2 回答

?
交互式爱情

TA贡献1712条经验 获得超3个赞

尝试使用Max()函数

从 django.db.models 导入 Max
trades = Trade.objects.all().annotate(latest_leg_date= Max('tradeleg__date') )


查看完整回答
反对 回复 2021-09-14
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

这是获得最新交易的最简单和专业的方式

latestTrades = Trade.objects.filter().order_by('-tradeleg__date')

但是,如果您使用 MaxMin函数,它将给出相同的查询。因此可能会导致错误


查看完整回答
反对 回复 2021-09-14
  • 2 回答
  • 0 关注
  • 205 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信