Django 模板上的渲染列表
我试图用模型中的数据在模板中创建一些图形。我正在做一个调查应用程序。每个调查都有一些问题,每个问题都有一些答案。用户回答每个问题。所以我计算每个问题的答案。我想在我的模板中绘制这些答案 我使用此视图计算数据并渲染到模板:Django 模板上的渲染列表,django,django-templates,django-views,Django,Django Templates,Django Views,我试图用模型中的数据在模板中创建一些图形。我正在做一个调查应用程序。每个调查都有一些问题,每个问题都有一些答案。用户回答每个问题。所以我计算每个问题的答案。我想在我的模板中绘制这些答案 我使用此视图计算数据并渲染到模板: def SurveyResults(request, id): user = request.user if user.is_authenticated(): quest_survey = Survey.objects.get(id=2)
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})
{% for key, value in graphic.items %}
{% for item in value %}
{{ item }}
{% endfor %}
{% endfor %}
问题是,如何在模板中获取图形[“1”]、…、图形[“n”]的值
我正在尝试这样做:
{% if graphic %}
{% for g in graphic %}
{% for item in g %}
{{ item }}
{% endfor %}
{% endfor %}
{% endif %}
但不是数据,我只得到ID的值:1,2,…,n使用
items
函数在模板中显示字典的键和值:
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})
{% for key, value in graphic.items %}
{% for item in value %}
{{ item }}
{% endfor %}
{% endfor %}
很抱歉,此解决方案无法正常工作。{{item}}不以单独的方式返回项[1]、项[2]、…、项[n]。取而代之的是,我得到的每个答案都是分开的,这不允许我去设计情节。已经解决了。我只想要第一个和打印值。第二项和打印项不需要。谢谢