Django 프로젝트를 진행하던 중, views.py에서 html파일로 context를 넘겨줬다.
이 때, context를 리스트로 넘겨주었고, html 파일에서 리스트의 크기만큼 <div>태그를 만들고싶었다.
html을 너무 오랜만에 써봐서, javascript로 for문 + document.write()를 돌려서 div를 만들어야하나.. 생각하던 중
# views.py
.... # 위에 내용 더 있음
if result.answer == result.result:
result.correct = 'correct'
result.save()
result_list.append(result)
result = Result.objects.filter(model=model)
model.accuracy = result.filter(correct='correct').count() / result.count()
model.save()
context = {
'result': result_list,
}
# http method의 GET은 처리하지 않는다. 사이트 테스트용으로 남겨둠
else:
logger.error(('Something went wrong!!'))
return render(request, 'language/result.html', context)
# language/result.html
<div style='display:flex'>
{% for r in result %}
<div class='{{r.correct}}' style='flex:0'>
<div class='image' style="text-align : center;">
<img src="{{ r.image.url }}" width="300px" height=300px>
</div>
<div class='result'>
<div class='pred' style="text-align : center;">
예측 결과 : {{ r.result }}
</div>
<div class='answer' style="text-align : center;">
정답 : {{ r.answer }}
</div>
</div>
<div style="text-align : center;">
{{r.correct}}
</div>
</div >
{% endfor %}
</div>
아주 간단하게
{% for in %}{% endfor %}
을 사용하여 해결하였다.
이런 간단한 것도 까먹다니.. 다시 html 공부를 해야겠다ㅠㅠ
댓글