比方說,我有排序的模型:的Django得到最新的對象匹配查詢
class Related(models.Model):
... stuff ....
class Example(models.Model):
field1 = models.ForeignKey(Related, on_delete=models.CASCADE, related_name='+')
field2 = models.ForeignKey(Related, on_delete=models.CASCADE, related_name='+')
created = models.DateTimeField(default=timezone.now)
... more fields
我想要做的就是選擇每個固定對FIELD1和FIELD2的最新例證。我想從示例中選擇全部的字段。假設Example中的條目數量可能是數百萬的數量級。
一個例子SQL查詢,將做的工作是一樣的東西(假設一個應用程序名稱「測試」):
select * from test_example as e
where not exists (
select id
from test_example as e2
where e2.field1_id = e.field1_id
and e2.field2_id = e.field2_id
and e2.created > e.created)
是否有我表達對QuerySet的API類似的東西什麼辦法?到目前爲止,我發現的唯一解決方案是運行原始SQL,我真的想避免這種情況。
我想要我的查詢返回所有配對的最新記錄,而不是固定配對'foo','bar' –
那麼你的意思是找到兩個「重複」記錄的最新記錄? – ptr
它們在某種意義上是重複的,這兩個特定字段匹配它們,但它們有許多其他字段 –