2017-06-06 9 views
0

我正在查找基於一組對象時間戳命令查詢集。Django查詢獲取基於最新外鍵時間戳的對象,並下令它們

這裏有一個簡單的例子:

Class Device(models.Model: 
    status = models.CharField(max_length=50) 

class Event(models.Model): 
    timestamp = models.DateTimeField(auto_now_add=True) 
    device = models.ForeignKey(Device) 

我想獲得該設備的最新事件,所以我可以訂購基於一個設備查詢集。

回答

0

您可以使用註釋來獲取最新的設備對事件的時間戳和由註釋字段,則順序,按降序排列

from django.db.models import Max 

Device.objects.annotate(
    most_recent=Max('event_set__timestamp') 
).order_by('-most_recent')