반응형
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

    {% extends 'base.html' %}
    {% block content %}

    <div class="container my-3">
        <table calss="table" width="100%">
            <thead >
                <tr class="bg-dark text-white">
                        <th> 번호 </th>
                        <th> 제목 </th>
                        <th> 작성일시 </th>
                </tr>
            </thead>

            <tbody>
                {% if question_list %}
                {% for question in question_list.items %}
                <tr>
                        <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>
                            {% if question.answer_set|length > 0 %}
                                <span class="text-danger small">{{ question.answer_set|length }}</span>
                            {% endif %}
                        </td>

                        <td>{{ question.create_date|datetime  }}</td>
                </tr>
                {% endfor %}
                {% else %}
                <tr>
                    <td colspan="3"> 질문이 없습니다. </td>
                </tr>
                {% endif %}
            </tbody>
        </table>
        <!-- 페이징 -->
        <nav aria-label="Page navigation example">
          <ul class="pagination pagination-sm my-5 justify-content-center">
              <!-- 이전 페이징 구현 (이전 페이지 있을시)-->
              {% if question_list.has_prev %}
                <li class="page-item">
                    <a class="page-link" href="?page={{ question_list.prev_num }}">이전</a>
                </li>
              <!-- 이전 페이지가 없을 시 -->
              {% else %}
                <li class="page-item disabled">
                    <a class="page-link" href="">이전</a>
                </li>
              {% endif %}
              <!-- 중간 페이징 -->
              {% for page_num in question_list.iter_pages() %}
                {% if page_num %}
                    {% if page_num != question_list.page %}
                        <li class="page-item">
                            <a class="page-link" href="?page={{ page_num }}">{{ page_num }}</a>
                        </li>
                    {% else %}
                        <li class="page-item active" aria-current="page">
                            <a class="page-link" href="#">{{ page_num }}</a>
                        </li>
                    {% endif %}
                {% else %}
                    <li class="disabled">
                        <a class="page-link" href="#">...</a>
                    </li>
                {% endif %}
              {% endfor %}
              <!-- 다음 페이징 구현 (다음 페이지가 있는 경우_ -->
              {% if question_list.has_next %}
                  <li class="page-item">
                      <a class="page-link" href="?page={{ question_list.next_num }}">다음</a>
                  </li>
              <!-- 다음 페이지 없는 경우 -->
              {% else %}
                  <li class="page-item disabled">
                      <a class="page-link" tabindex="-1" aria-disabled="true" href="#">다음</a>
                  </li>
              {% endif %}
          </ul>
        </nav>

        </ul>
        <a href="{{ url_for('question.create') }}" class="btn btn-primary"> 질문 등록하기 </a>
    </div>

    {% endblock %}

</body>
</html>

question_list.html 입니다.

{% if question.answer_set|length > 0 %}
	<span class="text-danger small">{{ question.answer_set|length }}</span>
{% endif %}

답변의 갯수가 0개 초과라면 그만큼의 댓글 개수를 출력합니다.

 

반응형