Я собираю данные об устройствах с поддержкой WiFi и храню MAC-адрес, а также время сбора данных в базе данных.Каждое устройство обнаруживается несколько раз, что означает, что в таблице базы данных есть несколько строк с одинаковым MAC-адресом, но разным временем обнаружения, например:

То, что я хочу, это получить только самое последнее обнаружение для каждого MAC-адреса.В приведенном выше примере это будет:
- Nov.17, 2018, 6:17: 02: e3: e6: b4: 63: 81
- ноябрь.17, 2018, 6:20: 0a: 13: 0b: 18: c0: 5e
- Nov.17, 2018, 6:20: 16: 50: 1d: 82: cf: fa
Как я могу отфильтровать мой запрос к БД для достижения чего-то подобного?
models.py
from django.db import models
"""
Node is a Pi Zero. Each time one of these is found, we want to display it
as a map marker
"""
class Node(models.Model):
# A human readable name for the node
name = models.CharField(max_length=30, default='Pi Zero')
mac_address = models.CharField(max_length=30, primary_key=True)
time = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.name
"""
Device is a WiFi enabled devices. The Pi Zeros
discover new Devices and feed that information to the mesh network sink. The
sink node then makes a POST request to this webapp that instantiates an instance
of this model.
This data is displayed on the map and is associated with each Node Model.
"""
class Device(models.Model):
discovered_by = models.ForeignKey(Node, on_delete=models.CASCADE)
mac_address = models.CharField(max_length=18)
age = models.IntegerField(default=0)
vendor = models.CharField(max_length=60, blank=True)
time = models.DateTimeField(auto_now_add=True)
views.py:
from django.shortcuts import render
from django.views import generic
# from django.views.generic import edit
from apps.main.models import Node, Device
from django.conf import settings
class HomeView(generic.TemplateView):
template_name = 'index.html'
def nodes(self):
nodes = Node.objects.all()
for node in nodes:
node.devices = Device.objects.filter(discovered_by=node).order_by('mac_address', '-time')
return nodes