이 같은 두 가지 모델이 있습니다템플릿의 _set에 map()을 사용하고 있습니까?
class KPI(models.Model):
"""KPI model to hold the basic info on a Key Performance Indicator"""
title = models.CharField(blank=False, max_length=100)
description = models.TextField(blank=True)
target = models.FloatField(blank=False, null=False)
group = models.ForeignKey(KpiGroup)
subGroup = models.ForeignKey(KpiSubGroup, null=True)
unit = models.TextField(blank=True)
owner = models.ForeignKey(User)
bt_measure = models.BooleanField(default=False)
class KpiHistory(models.Model):
"""A historical log of previous KPI values."""
kpi = models.ForeignKey(KPI)
measure = models.FloatField(blank=False, null=False)
kpi_date = models.DateField()
나는 내부 월 보드에 대한 통계를 표시 할 RGraph을 사용하고 있습니다를, 편리한 것은 파이썬리스트에 의해 때문에, 자바 스크립트가 배열로 보는 형식으로 출력을 얻을 수있다 이 같은 목록에 모든 값을 매핑 :
는def f(x): return float(x.measure)
stats = map(f, KpiHistory.objects.filter(kpi=1)
다음 템플릿에 단순히
{{ stats }}
과 일을 사용할 수 있습니다 e RGraph 코드는 그것을 원하는 배열로 봅니다.
[87.0, 87.5, 88.5, 90]
그래서 제 질문은 이것이다, 나는 지금이 전달 된 것까지, 템플릿에 전달하고있어 데이터의 양을 유지하기 위해 장고의 _set 기능을 사용하여 동일한 효과를 얻을 수있는 방법이있다 하나의 KPI 객체 그래프 수 있지만, 지금은 내가 _set로 할 수있는 일
{{ kpi.kpihistory_set }}
전체 모델을 덤프가 전체 무리를 전달하고 싶지만, 난 그냥 측정 필드를합니다.
필자가 원하는 단일 필드를 추출 할 수있는 기본 제공 템플릿 방법을 볼 수 없습니다.
이 상황을 다른 사람들이 어떻게 처리 했습니까?
저는보기에서 KPI를 선택했습니다. 해당하는 KpiHistory 레코드를 목록으로 사용할 수 있기를 원하지만 전체 모델이 아닌 값만 사용할 수 있습니다. 이제지도 함수를 사용할 때의 결과와 비슷합니다. –
그래서지도의 결과를 템플릿 컨텍스트 변수로 설정하십시오. – SingleNegationElimination
내가 표시하고 싶은 KPI가 여러 개있을 때 모델에서 다른 정보를 사용하면 정보를 두 번 (모델에서 한 번, 목록에서 한 번) 보내면 특히 효율적이지 않습니다. 그것을하는 더 좋은 방법이 있기를 바랬습니다. –