고통은 사라지고 결과는 남는다. 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