Django - Detail Pages & the {% url %} template tag!
- Django 상세 페이지에서 질문에 대한 선택지(choices)를 표시하여 사용자에게 더 풍부한 정보를 제공하도록 개선합니다. 📄
- 템플릿
for 루프를 활용하여 question.choice_set.all을 통해 특정 질문과 연결된 모든 선택지를 반복하고 choice.choice_text를 렌더링합니다. 🔄
Choice 모델이 Question 모델에 ForeignKey로 연결되어 있어, question.choice_set.all 구문을 통해 질문에 속한 선택지들을 쉽게 가져올 수 있습니다. 🔗
- Django 관리자(Admin) 인터페이스를 사용하여 질문에 대한 선택지들을 생성하고 연결하는 과정을 시연합니다. 🧑💻
- 하드코딩된 URL 대신
{% url 'URL_NAME' parameter %} 템플릿 태그를 사용하여 URL을 동적으로 생성하고, URL 구조 변경 시 유지보수를 용이하게 하는 모범 사례를 소개합니다. 🏷️
- 여러 Django 앱에서 동일한 URL 이름이 충돌하는 것을 방지하기 위해
app_name을 정의하고 {% url 'app_name:URL_NAME' %} 형식으로 URL을 참조하는 URL 네임스페이스 적용 방법을 설명합니다. 🏘️
- 선택지가 없을 경우의 사용자 경험을 개선하기 위해 두 가지 방법을 제시합니다:
for 루프 내 {% empty %} 블록을 사용하여 대체 메시지를 표시하거나 🚫
{% if question.choice_set.count %} 조건문을 사용하여 선택지가 있을 때만 목록을 렌더링하고, 없을 때는 다른 메시지를 보여주는 더 의미론적인 방법을 사용합니다. ✅