我有一个模型(交付),其中包含2个名为 name和to_date 的字段。我只需要一个具有特定名称的对象,它的最大值为to_date。
Delivery.objects.filter(name__exact = 'name1').aggregate(Max('valid_to'))
上述查询将返回最大日期。是否可以获取完整的对象?
答案 0 :(得分:2)
获取由valid_to命令的单个对象:
obj = Delivery.objects.filter(name='name1', to_date=my_date).order_by('-valid_to')[0]
答案 1 :(得分:1)
试试这个:
maximum_to_date = Delivery.objects.filter(name__exact='name1').aggregate(maximum to_date=Max('valid_to'))
result = Delivery.objects.filter(valid_to=maximum_to_date)
请注意,您需要在第二行中使用filter(),因为两个或多个Deliveries可能具有相同的valid_to
值。在这种情况下,您可以接受所有这些,或者例如取一个ID最小的那个,取决于你需要的。