Я вижу много похожих запросов, но ни один из них, похоже, не работает для того, что я после,
У меня есть таблица как таковая:
class BGPData(models.Model):
subnet = models.ForeignKey(Subnet, verbose_name="Subnet", on_delete=models.CASCADE, blank=True, null=True)
bgp_peer_as = models.CharField(max_length=20, verbose_name='BGP Peer AS', blank=True, null=True)
bgp_session = models.CharField(max_length=10, verbose_name='BGP Session', blank=True, null=True)
bgp_routes = models.CharField(max_length=10, verbose_name='BGP Routes Received', blank=True, null=True)
timestamp = models.DateTimeField(auto_now=True, blank=True, null=True)
Цель: I хотел бы получить самую новую запись по внешнему ключу только на su bnet.
Попытки пока что ниже: -
bgp_data_query = BGPData.objects.filter(subnet__get_bgp=True,subnet__wb_bgp=True) \
.annotate(last_updated=Cast(TruncSecond('timestamp', DateTimeField()), CharField()))
d = BGPData.objects.annotate(max_timestamp=Max('timestamp')).filter(timestamp=F('max_timestamp'))
Вот что-то, что я не совсем понимаю, но я не уверены, что это такое ...
Спасибо
, поэтому, если моя таблица содержит:
subnet_id | routes | timestamp
1 | 10 | 01-01-20 17:30
1 | 10 | 01-01-20 17:20
1 | 10 | 01-01-20 17:10
2 | 20 | 01-01-20 17:30
Я бы вернул
subnet_id | routes | timestamp
1 | 10 | 01-01-20 17:30
2 | 20 | 01-01-20 17:30