Django: selecione valores com timestamps máximos ou junte-se à mesma tabela
Eu tenho modelos simples do Django
class Server(models.Model):
name = models.CharField(max_length=120)
class ServerPropertie(models.Model):
name = models.CharField(max_length=120)
value = models.CharField(max_length=120)
timestamp = models.DateTimeField()
server = models.ForeignKey(Server)
Eu quero adicionar o método get_properties para o modelo de servidor, que retornará todas as últimas propriedades para o servidor atual. Quero dizer que deve retornar o nome e o valor de todos os nomes de propriedades para o servidor atual e cada nome de propriedade uniq deve ter um valor, qual linha tem um registro de data e hora máximo.
Eu posso fazer isso em raw raw bruto codificado (eu uso o postgres):
SELECT t1.name, t1.value FROM environments_serverpropertie t1
JOIN (SELECT max("timestamp") "timestamp", name
FROM environments_serverpropertie
group by name) t2 on t1.name = t2.name and t1.timestamp = t2.timestamp;
ou em python, mas acredito que exista solução pythonic. Podes ajudar-me, por favor.