嗨,夥計們,我有一個模型,其ID不是唯一的。每個模型也有一個日期。我想返回所有結果,但只返回分享ID的每行最近的結果。這個模型看起來是這樣的:查詢所有行並返回每個副本的最新內容
class MyModel(models.Model):
my_id = models.PositiveIntegerField()
date = models.DateTimeField()
title = models.CharField(max_length=36)
## Add some entries
m1 = MyModel(my_id=1, date=yesterday, title='stop')
m1.save()
m2 = MyModel(my_id=1, date=today, title='go')
m2.save()
m3 = MyModel(my_id=2, date=today, title='hello')
m3.save()
現在嘗試檢索這些結果:
MyModel.objects.all()... # then limit duplicate my_id's by most recent
結果應該只有平方米和立方米
只要循環結果,是不是會評估QuerySet並導致所有查找?沒有辦法做到這一點沒有? – Scott 2010-10-24 15:46:12
關係數據庫(以及因此構建的ORM)不適用於行之間的操作(包括比較)。他們的模型基本上是選擇一組行,然後對它們進行排序。我想不出一種方法讓SQL去做你想做的事情。 – 2010-10-24 15:59:34
好的,謝謝你花時間。我想我會以其他方式限制結果(比如只獲得最近的結果)以減輕體重。再次感謝Ned! – Scott 2010-10-24 16:09:23