IT/Linux
[Python] django 게시판 글쓴이 표시 (2)
액트
2022. 11. 25. 16:20
데이터베이스에 저장한 글쓴이 필드인 author 속성을 웹브라우저 표시하고자 합니다.
글쓴이를 표시할 페이지는 (1)질문 목록 페이지와 (2)질문 상세 페이지 입니다.
먼저 질문 목록 페이지에 표시합니다.
1. 질문 목록
mysite\templates\pybo\question_list.html 파일을 아래와 같이 수정합니다.
{% extends 'base.html' %}
{% load pybo_filter %}
{% block content %}
<div class="container my-3">
<table class="table">
<thead>
<tr class="text-center table-dark"> <!-- 수정 -->
<th>번호</th>
<th style="width:50%">제목</th> <!-- 수정 -->
<th>글쓴이</th> <!-- 추가 -->
<th>작성일시</th>
</tr>
</thead>
이어서 for 문에도 다음과 같이 수정합니다.
{% for question in question_list %}
<tr class="text-center"> <!-- 가운데 정렬 -->
<!-- 게시글 번호 처리를 위한 구문 시작 -->
<td>
<!-- 게시글 번호= 전체건수 - 시작인덱스 - 현재인덱스 + 1 -->
{{ question_list.paginator.count|sub:question_list.start_index|sub:forloop.counter0|add:1 }}
</td>
<!-- 게시글 번호 처리를 위한 구문 끝-->
<td class="text-start"> <!-- 제목 왼쪽 정렬 -->
<a href="{% url 'pybo:detail' question.id %}"> {{question.subject }}</a>
<!-- 게시글 답변 개수 처리 시작 -->
{% if question.answer_set.count > 0 %}
<span class="text-danger small mx-2"> {{ question.answer_set.count }}</span>
{% endif %}
<!-- 게시글 답변 개수 처리 끝 -->
</td>
<td>{{ question.author.username }}</td> <!-- 글쓴이 추가 -->
<td>{{ question.create_date }}</td>
</tr>
{% endfor %}
{% else %}
<tr>
<td colspan="4">질문이 없습니다.</td> <!-- 3에서 4로 변경 -->
</tr>
{% endif %}
</tbody>
</table>
아래 구문을 삽입하여 질문의 글쓴이를 표시했습니다.
<td>{{ question.author.username }}</td> <!-- 글쓴이 추가 -->
그리고 테이블 내용을 가운데 정렬하도록 text-center 클래스를 추가하고, 제목을 왼쪽 정렬하도록 text-start 추가했습니다. 테이블 항목도 3개에서 4개로 늘었으므로 colspan도 3에서 4로 수정했습니다.
2. 질문 상세 페이지
질문 글에 글쓴이와 작성일시가 함께 보이도록 아래와 같이 수정합니다.
mysite\templates\pybo\question_detail.html
<!-- 질문 -->
<h2 class="border-bottom py-2">{{ question.subject }}</h2>
<div class="card my-3">
<div class="card-body">
<div class="card-text" style="white-space: pre-line;">{{ question.content }}</div>
<div class="d-flex justify-content-end">
<div class="badge bg-light text-dark p-2 text-start"> <!-- 변경 -->
<div class="mb-2">{{ question.author.username }}</div> <!-- 변경 -->
<div>{{ question.create_date }}</div> <!-- 변경 -->
</div>
</div>
답변 부분에도 글쓴이 추가합니다.
<!-- 답변 -->
<h5 class="border-bottom my-3 py-2">{{question.answer_set.count}}개의 답변이 있습니다.</h5>
{% for answer in question.answer_set.all %}
<div class="card my-3">
<div class="card-body">
<div class="card-text" style="white-space: pre-line;">{{ answer.content }}</div>
<div class="d-flex justify-content-end">
<div class="badge bg-light text-dark p-2 text-start"> <!-- 수정 -->
<div class="mb-2">{{ answer.author.username }}</div> <!-- 수정 -->
<div>{{ answer.create_date }}</div> <!-- 수정 -->
</div>
</div>
확인
이 글은 위키독스의 점프투장고를 통해 공부한 내용을 기록한 것입니다.