我正在尝试使用模型中的数据在模板中创建一些图形。我正在做一个调查应用程序。每项调查都有一些问题,每个问题都有一些答案。用户回答每个问题。所以我算上每个问题的答案。我想在我的模板中绘制这些答案。
我正在使用此视图来计算数据并渲染到模板:
def SurveyResults(request, id):
user = request.user
if user.is_authenticated():
quest_survey = Survey.objects.get(id=2)
quests = quest_survey.questions()
graphic = {}
graphic_id = 1
if quests:
for quest in quests:
a1 = AnswerSelect.objects.filter(question_id=quest.id, body = "answer 1").count()
a2 = AnswerSelect.objects.filter(question_id=quest.id, body = "answer 2").count()
a3 = AnswerSelect.objects.filter(question_id=quest.id, body = "answer 3").count()
a4 = AnswerSelect.objects.filter(question_id=quest.id, body = "answer 4").count()
graphic[str(graphic_id)] = [['answer1', a1], ['answer2', a2], ['answer3', a3], ['answer4', a4] ]
graphic_id += 1
return render(request, 'results.html', locals())
else:
msg = "A Survey não possui questões"
return HttpResponseRedirect('profile.html')
else:
msg = "Usuario ou senha digitados incorretamente"
return HttpResponseRedirect('home.html', {'msg': msg})
问题是,如何在模板中获取图形[“1”],...,图形[“n”]的值?
我正在尝试这样做:
{% if graphic %}
{% for g in graphic %}
{% for item in g %}
{{ item }}
{% endfor %}
{% endfor %}
{% endif %}
但不是数据,我只得到id的值:1,2,...,n
答案 0 :(得分:2)
使用items
功能在模板中显示字典的键和值:
{% for key, value in graphic.items %}
{% for item in value %}
{{ item }}
{% endfor %}
{% endfor %}