5

私は単純な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 メソッドをサーバー モデルに追加したいと考えています。つまり、現在のサーバーのすべてのプロパティ名の名前と値を返す必要があり、各一意のプロパティ名には値が必要であり、その行には最大のタイムスタンプがあります。

私は生のハードコードされた生の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ソリューションが存在すると信じています。手伝っていただけませんか。

4

1 に答える 1