고통은 사라지고 결과는 남는다. Records of Chansolve

Django for문 여러 개 쓰는 방법 본문

IT

Django for문 여러 개 쓰는 방법

엄청큰노란닭 2023. 10. 5. 14:34

Django에서 for문 안에 여러 모델의 정보를 넣고 싶을 때 다 찾아보기 힘들어서 결국 만들었습니다.

 

한번 쓰고나면 다음에 다시 할 때, 생각이 안나서 블로그에 남겨놓고 혼자 보는중입니다.

 

views.py에 코드를 작성해준다. get 으로 작성해주면 되겠습니다.


  
total = [] # for문 출력 list
nradrrts = Nradrrt1.objects.all().order_by('-id')
for nradrrt in nradrrts:
nrprwpts = Nrprwpt1.objects.filter(nrprwpt1_snum_rwp = nradrrt.snum_rwp).order_by('-id')
for nrprwpt in nrprwpts:
nradrets = Nradret1.objects.filter(nradret1_sjum = nrprwpt.nrprwpt1_sjum).order_by('-id')
for nradret in nradrets:
# 튜플 형태로 만들어준다.
data_tuple = (nrprwpt, nradret, nradrrt)
total.append(data_tuple)
context = {
'total' : total,
}
return render(request, self.template_name, context)

 

.html에는 간단하게 for문으로 받아주는데, 튜플 값을 입력해줘야 합니다.

No 에는 데이터의 수 만큼 증가하게 만들어주었습니다.


  
<div class="m-3">
<table class="table table-hover" style="width: max-content;">
<thead>
<tr>
<th scope="col" class="text-center">No</th>
<th scope="col" class="text-center">주민등록번호</th>
<th scope="col" class="text-center">이름</th>
<th scope="col" class="text-center">예상시간</th>
<th scope="col" class="text-center">예상선량</th>
</tr>
</thead>
<tbody>
{% for data in total %}
<tr>
<th scope="row" class="text-center">{{ forloop.counter }}</th>
<td class="text-center">{{ data.0.nrprwpt1_sjum }}</td>
<td class="text-center">{{ data.1.nnam }}</td>
<td class="text-center">{{ data.2.tpdc }}</td>
<td class="text-center">{{ data.2.qrad_pdc }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>

'IT' 카테고리의 다른 글

데이터 시각화  (0) 2024.02.21
mysqlclient Error  (0) 2023.12.04
Python: TCP/IP 소켓 통신  (0) 2023.09.13
Python으로 스톱워치를 만들어보자  (0) 2023.04.06
챗GPT(chatGPT)란  (0) 2023.02.21
Comments