Je dois renommer le nom du champ de sortie avec la valeur de la variable entrante. Il y a une fonction:Nom du champ dynamique dans l'annotation de l'ensemble de queues
def metric_data(request, test_id, metric):
metric_name = metric
data = ServerMonitoringData.objects. \
filter(test_id=test_id). \
annotate(timestamp=RawSQL("((data->>%s)::timestamp)", ('timestamp',))).\
annotate(metric=RawSQL("((data->>%s)::numeric)", (metric,))). \
values('timestamp', "metric")
Donc dans ce cas, peu importe quelle valeur est la variable métrique la sortie est Ressemblant:
{"timestamp": "0:31:02", "metric": "8.82414500398"}
je dois avoir une sortie avec des noms clés égale à la variable métrique (si métrique 'CPU_iowait' ==):
{"timestamp": "0:31:02", "CPU_iowait": "8.82414500398"}
tryed utiliser quelque chose comme ceci:
metric_name = metric
...
annotate(metric_name=F('metric')).\
values('timestamp', metric_name)
Mais il essaie de trouver la colonne 'CPU_iowait' quand existe 'metric_name'. Alors, est-il possible de transmettre le nom du champ en tant que variable?
cool, ça marche, merci – v0devil