강의로 돌아가기
박명완

궁금한 점이 하나 있습니다.

def index(request):
    candidates = Candidate.objects.all()
    context = {'candidates' : candidates} #context에 모든 후보에 대한 정보를 저장
    return render(request, 'elections/index.html', context)

여기서 context는 객체들의 리스트를 저장한 딕셔너리 같은데 맞나요?

추가로 index.html에서 이 값들을 불러올때

{% for candidate in candidates %} 

이 코드를 작성하잖아요?
여기서 candidates는 위의 딕셔너리의 키 같은데
for 문에서 딕셔너리의 키만 사용하여 value 들을 리턴받아서 condidate가 value list 하나 하나를 의미하는 것 같은데
딕셔너리에서 key만 사용하여 value를 리턴받는 것이 방금 파이썬에서도 확인해봤는데 불가능하지 않나요??ㅜㅜ
이 부분이 어떻게 가능한지 설명해주 실수 있으신가요? 아니면 제가 잘못 이해하고 있는 건지 궁금합니다 ~!

2 개의 답변
정두식_

잘못 이해하신것 같습니다.

candidates = Candidate.objects.all()로 받아온 Candidate 객체들이 들어있습니다.

  • 박명완
    답변 감사드립니다! 자세한 내용은 밑부분에 다시 작성하겠습니다 박명완 2018.05.12 19:05
박명완

답변 감사드립니다. 말씀해주신 딕셔너리의 value 값에는 Candidate 객체들의 리스트가 있는 것으로 이해를 했었는데
제가 설명이 부족했던 것 같습니다. 제가 말씀드린 candidates 는

context = {'candidates' : candidates}

여기서의 '키'를 말씀드린것 입니다. 여기서 'candidates' 는 딕셔너리의 key인데
html에서 이 키 값으로만 for문을 쓰기 위한 리스트를 불러오지 않았나요??
제가 지식이 부족하여 그부분이 이해가 되지 않아서요 ㅠㅠ

  • 정두식_
    for candidate in candidates에서 candidate는 변수명이고, 딕셔너리의 'candidate'는 그냥 문자열입니다. 키로 문자열을 쓴 것 뿐이에요. 정두식_ 2018.06.11 09:47
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.