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 の人口統計と 12 のカテゴリ評価があるため、可能であれば、それぞれを自分のビューに入れる必要は避けたいと考えています (つまり、male_category_calc = avgcalc(male, category))人口統計とカテゴリごと. これは可能ですか? または、非常に長い方法で行う必要がありますか? 機能する限り、テンプレートにそれぞれを入力する必要があります. 助けやアドバイスをありがとう.