책 '점프 투 플라스크'를 공부하면서 정리한 내용입니다.
출처 : https://wikidocs.net/book/4542
게시물의 질문 목록 조회 화면은 항상 1부터 시작된다. 페이지를 넘어가도 항상 위에서부터 1로 시작되는 문제가 있다.
게시물은 작성할 때마다 역순으로 페이지에 보이기 때문에 번호를 역순으로 정렬해야 한다.
<번호 공식>
번호 = 전체 게시물 개수 - (현재 페이지 - 1) * 페이지당 게시물 개수 - 나열 인덱스
질문 목록 조회 템플릿에 번호 공식 적용
<tr>
<!-- ------------------------------ [edit] -------------------------------- -->
<td>{{ question_list.total - ((question_list.page-1) * question_list.per_page) - loop.index0 }}</td>
<!-- ---------------------------------------------------------------------- -->
<td>
<a href="{{ url_for('question.detail', question_id=question.id) }}">{{ question.subject }}</a>
</td>
<td>{{ question.create_date|datetime }}</td>
</tr>
루프 내부의 카운터 변수 를 jinja2에서 loop.index 라고 한다. 0 기반 인덱스를 원할 경우 loop.index0 사용 가능
<td>
<a href="{{ url_for('question.detail', question_id=question.id) }}">{{ question.subject }}</a>
<!-- ------------------------------ [edit] -------------------------------- -->
{% if question.answer_set|length > 0 %}
<span class="text-danger small ml-2">{{ question.answer_set|length }}</span>
{% endif %}
<!-- ---------------------------------------------------------------------- -->
</td>
{% if question.answer_set|length > 0 %}로 답변이 있는 경우를 검사하고, {{ question.answer_set|length }}로 답변 개수를 표시