0

我有一个 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')
4

2 回答 2

2

尝试使用Max()函数

从 django.db.models 导入 Max

交易 = Trade.objects.all().annotate(latest_leg_date= Max('tradeleg__date') )
于 2018-12-11T07:37:48.927 回答
1

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

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

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

于 2018-12-11T08:26:03.760 回答