게시물 일련번호, 답변 개수 표시

jurin·2020년 12월 24일
0

플라스크 - python

목록 보기
10/17

책 '점프 투 플라스크'를 공부하면서 정리한 내용입니다.
출처 : https://wikidocs.net/book/4542

항상 1로 시작하는 게시물 번호 문제 해결하기

게시물의 질문 목록 조회 화면은 항상 1부터 시작된다. 페이지를 넘어가도 항상 위에서부터 1로 시작되는 문제가 있다.

1. 게시물 번호 공식 만들기

게시물은 작성할 때마다 역순으로 페이지에 보이기 때문에 번호를 역순으로 정렬해야 한다.

<번호 공식>
번호 = 전체 게시물 개수 - (현재 페이지 - 1) * 페이지당 게시물 개수 - 나열 인덱스

2. 게시물 번호 공식 적용

질문 목록 조회 템플릿에 번호 공식 적용

<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 }}로 답변 개수를 표시

profile
anaooauc1236@naver.com

0개의 댓글

관련 채용 정보