因此,我有一個SensorType
模型,其中SensorReading
對象的集合作爲sensorreading_set
的一部分(即傳感器類型具有多個傳感器讀數)。我想註釋傳感器類型,給我傳感器讀數與最大ID。即:使用已過濾的相關對象集進行註釋
sensor_types = SensorType.objects.annotate(
newest_reading_id=Max('sensorreading__id'))
這很有效,但有一個問題。傳感器讀數有另一個外鍵,Device
。我真正想要的是針對給定設備的給定傳感器類型的最高傳感器讀數ID。是否可以將註釋引用傳感器讀數的一個子集,基本相當於SensorReading.objects.filter(device=device)
?
呃,難道你不能連鎖這兩個? 'SensorReading.objects.filter(設備=裝置).annotate(newest_reading_id =最大( 'sensorreading__id'))'? –
您忘記了傳感器類型。我需要爲每種類型獲取最大ID傳感器讀數,而不是每個傳感器讀數的最大值,所以我不能簡單地使用SensorReading資源進行鏈接。 – user1427661
啊,你說得對!我混淆了你的模型,不是嗎?您可能需要[Q對象](https://docs.djangoproject.com/en/dev/topics/db/queries/#complex-lookups-with-q-objects)進行這種查詢。 –