Django - Add Context to Class-Based Views | get_context_data()
- Django 클래스 기반 뷰(CBV)에서
get_context_data() 메서드는 템플릿에 추가적인 사용자 정의 컨텍스트를 전달하는 데 사용되는 매우 유용한 기능입니다. 💡
- 함수 기반 뷰(FBV)를
generic.ListView와 같은 클래스 기반 뷰로 전환할 때, 기본 쿼리셋 외의 데이터를 템플릿에 전달하려면 이 메서드를 재정의해야 합니다. 🔄
generic.ListView는 template_name과 queryset 필드를 사용하여 기본 설정을 정의하며, URLconf에서는 .as_view()를 통해 호출됩니다. ⚙️
- 쿼리셋 데이터를 템플릿에서 참조할 이름을 지정하려면
context_object_name 필드를 사용합니다 (예: questions). 🏷️
context_object_name을 명시하지 않을 경우, 기본값은 모델 이름을 소문자로 변환한 후 _list를 붙인 형태입니다 (예: question_list). 📝
get_context_data() 메서드를 재정의할 때는 super().get_context_data(**kwargs)를 호출하여 기본 컨텍스트를 가져온 다음, 원하는 추가 데이터를 딕셔너리 형태로 추가하고 수정된 컨텍스트를 반환합니다. ➕
- 이 방법을 통해 쿼리셋 목록과 함께 임의의 숫자 리스트와 같은 사용자 정의 데이터를 템플릿에 효과적으로 표시할 수 있습니다. 📊
get_context_data()는 대부분의 Django 클래스 기반 뷰에서 사용할 수 있어, 유연하게 템플릿에 필요한 모든 정보를 제공할 수 있게 합니다. ✨