我有一个简单的 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)
我想将 get_properties 方法添加到 Server 模型中,它将返回当前服务器的所有最后属性。我的意思是它应该返回当前服务器的所有属性名称的名称和值,并且每个 uniq 属性名称应该有一个值,该行具有最大时间戳。
我可以在原始硬编码的原始 SQL 中做到这一点(我使用 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;
或在 python 中,但我相信存在 pythonic 解决方案。请你帮助我好吗。