Я не уверен, правильно ли я поставил название для того, что мне нужно, но вот в чем дело. У меня две модели.
class Device(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
device_name = models.CharField(max_length=200, null=True, blank=True )
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return str(self.device_name)
class StatusActivity(models.Model):
OFFLINE = 1
ONLINE = 2
STATUS = (
(OFFLINE, ('Offline')),
(ONLINE, ('Online')),
)
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
device_id = models.ForeignKey(Device, related_name='status_activity', on_delete=models.CASCADE)
status = models.PositiveSmallIntegerField(choices=STATUS)
modified_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return str(self.device_id)
Я могу получить список StatusActivity и Device отдельно. Но мне нужен последний статус для каждого устройства.
Устройства:
Id Created_At Device_name
5b9bbd0f02f8428ca69a582a491f0751 2019-11-30 15:38:37.076440 Temperature Device
17c1ac3ed05844cd879c218effaba15e 2019-11-30 15:39:14.716443 Humidity Device
a0ca21a555b246b99be965db4493276f 2019-11-30 15:39:27.822114 Motion Device
StatusActivities:
Id Status Modified_at Device_id_id
350fed049ba04541a7b6d81932d5824b 2 2019-11-30 15:39:39.849491 5b9bbd0f02f8428ca69a582a491f0751
e4f317b56bbb46eb9309ba77da692af0 1 2019-11-30 15:39:47.912013 5b9bbd0f02f8428ca69a582a491f0751
e0a021dd53734d3b9a15e53ad93bbb28 2 2019-11-30 15:41:04.891823 5b9bbd0f02f8428ca69a582a491f0751
1c12c64708234df6992883b377d3102f 2 2019-11-30 17:12:58.336177 17c1ac3ed05844cd879c218effaba15e
8d280d522baa449588b9a9ab67ed7bae 1 2019-11-30 17:13:05.987487 a0ca21a555b246b99be965db4493276f
Пример результата должен быть таким:
ID device_name Status Modified_at
5b9bbd0f02f8428ca69a582a491f0751 Temperature Device 2 2019-11-30 15:39:39.849491
17c1ac3ed05844cd879c218effaba15e Humidity Device 2 2019-11-30 17:12:58.336177
a0ca21a555b246b99be965db4493276f Motion Device 1 2019-11-30 17:13:05.987487