🔍 Django에서 'results = ...' 와 {'results': results}가 왜 둘 다 나오나요?

2025. 5. 15. 10:47·기술블로그-Django편

🔍 Django에서 'results = ...' 와 {'results': results}가 왜 둘 다 나오나요?

Django의 render() 함수 안에 다음과 같은 코드가 자주 보입니다:

results = SomeModel.objects.filter(name__icontains=keyword)
return render(request, "partials/search_results.html", {"results": results})

👀 언뜻 보면 "results가 왜 두 번 나오지?" 하는 의문이 들 수 있어요. 하지만 각각 역할이 다릅니다.


✅ 1. 코드 흐름 분석

✔️ results = ...

  • 이는 서버 내부에서 사용하는 변수명입니다.
  • SomeModel.objects.filter(...)의 결과(QuerySet)를 results 변수에 담은 것.

✔️ {"results": results}

  • 이는 템플릿에 넘겨줄 context 딕셔너리입니다.
  • 왼쪽 "results"는 템플릿에서 쓸 이름, 오른쪽 results는 위에서 만든 파이썬 변수입니다.

즉, context는 아래와 같이 해석됩니다:

context = {
    "템플릿에서 사용할 변수명": 내부에서 정의한 파이썬 변수
}

 


📌 2. 템플릿에서는 이렇게 사용됩니다

{% for item in results %}
  <p>{{ item.name }}</p>
{% endfor %}
  • 여기서 results는 context 딕셔너리의 키에 해당합니다.
  • 서버에서 넘겨준 QuerySet(results)을 템플릿에서 반복 출력하는 방식이죠.

🔄 이름이 꼭 같아야 할까?

아니요! 이름은 자유롭게 지정할 수 있어요:

found_items = SomeModel.objects.filter(...)
return render(request, "template.html", {"results": found_items})

이렇게 해도 문제 없습니다. 템플릿에서는 {{ results }}로 접근하면 되고, 내부 변수는 어떤 이름을 써도 됩니다.


⚠️ 실수 방지 포인트

구분 설명

서버 내부 변수 파이썬 코드에서 처리되는 데이터 (ex. results)
템플릿 키 템플릿에서 사용할 이름 (ex. "results")
이름이 같을 경우 혼란을 줄일 수 있어 자주 그렇게 설정함

🎯 요약

results가 두 번 나오는 이유는 하나는 파이썬 변수, 하나는 템플릿 변수명으로 쓰이기 때문입니다.

둘은 같아도 되고, 달라도 되며 목적에 따라 자유롭게 사용하면 됩니다 💡

'기술블로그-Django편' 카테고리의 다른 글

📌 Django REST Framework(DRF)란?  (0) 2025.05.15
🧠 Django 클래스 기반 뷰(CBV)의 속성들, 왜 쓰는지 헷갈린다면?  (0) 2025.05.15
🔍 Django ORM 쿼리 최적화 - select_related vs prefetch_related  (0) 2025.05.14
📂 Django에서 MEDIA_URL과 MEDIA_ROOT 설정 완벽 이해하기  (0) 2025.05.14
✅ Django에서 User 모델을 참조하는 두 가지 방식 비교  (0) 2025.05.14
'기술블로그-Django편' 카테고리의 다른 글
  • 📌 Django REST Framework(DRF)란?
  • 🧠 Django 클래스 기반 뷰(CBV)의 속성들, 왜 쓰는지 헷갈린다면?
  • 🔍 Django ORM 쿼리 최적화 - select_related vs prefetch_related
  • 📂 Django에서 MEDIA_URL과 MEDIA_ROOT 설정 완벽 이해하기
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (702)
      • Python (32)
      • 프로젝트 (43)
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37)
      • 기술블로그 (40)
      • 기술블로그-Fastapi편 (33)
      • 기술블로그-Django편 (153)
      • 기술블로그-Flask편 (36)
      • AI 분석 (4)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (77)
      • Fastapi (16)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
🔍 Django에서 'results = ...' 와 {'results': results}가 왜 둘 다 나오나요?
상단으로

티스토리툴바