从Django中的模型中提取最新条目

时间:2011-05-26 18:54:15

标签: django django-orm

假设我有以下Django模型:

class Info(models.Model):
    instrument = models.ForeignKey('Instrument')
    date = models.DateTimeField()

如何提取每个工具的最新日期条目?

2 个答案:

答案 0 :(得分:3)

试试这个:

Instrument.objects.all().annotate(max_date=models.Max("info__date"))

它将返回所有乐器的列表,每个乐器都会有其他属性max_date,其中包含此乐器的最新日期。

答案 1 :(得分:0)

如果您想获得每种乐器的最新Info条目,您可以执行以下操作:

latest_notes = []
for instrument in Instrument.objects.all():
    latest_note = instrument.info_set.order_by('-date')[0]
    latest_notes.append(latest_note)

根据您拥有的Instrument条记录数量,这可能会也可能不可行。