【发布时间】:2023-04-05 06:13:02
【问题描述】:
我正在尝试在 django 模板页面上显示调查结果。我无法根据特定的人口统计数据和每个类别的评分来显示平均值。我已经将调查响应数据以整数形式保存在我拥有的调查表单视图中。这是我目前为止剩下的:
#views.py
def statistics(request):
male = Survey.objects.filter(gender='male')
...
#Other demographics filtered
...
def avgcalc(myDemographic, myCategory):
ratings = []
for x in myDemographic:
ratings.append(myCategory)
intTotal = 0
intCount = 0
intLenMyList = len(myDemographic)
while(intCount < intLenMyList):
intTotal += ratings[intCount]
intCount += 1
return intTotal/intLenMyList
...
#rest of view rendering template, etc.
现在是我遇到问题的地方。如何根据人口统计轻松显示每个类别的数据?例如,在我的模板中我想做
#template.html
Demographic: Male
Total responses for this demographic: {{ male|length }}
Average response for specific category: {{ avgcalc(male, category) }}
{{ male|length }} 可以很好地显示男性受访者的数量,但是,在模板中,我不能使用 {{ avgcalc(male, category) }}。实际上,我已经设置了一个表格,并且大约有 20 个人口统计数据和十几个类别评级,所以如果可能的话,我希望避免将每一个都放在我的视图中(即 male_category_calc = avgcalc(male, category)对于每个人口统计和类别。这甚至可能吗,还是我需要做很长的路要走?我可以将每个人都输入到我的模板中,只要它有效。感谢任何帮助或建议。
【问题讨论】:
-
是基于客户端的某种数据选择调用
avgcalc,还是使用数据渲染整个页面? -
整个页面将与数据一起呈现。
标签: django django-templates python-2.7 django-views