반응형
상세보기 (더보기) 기능 구현
※ 같은 페이지에서 보이는게 아니라 상세 페이지로 이동
상세(더보기) 이동 기능추가
- (app의 urls.py) post-detail 이라는 이름으로 지정
def post_detail_view(request, id):
post_detail = post.objects.get(id=id)
context = {
'post' : post_detail
}
return render(request, 'posts/post_detail.html', context)
- detail_view로 이동된 후에 list 내용과 유사하게 detail의 내용도 보여지게 기능 추가
- list와 다르게 한개만 보여주면 되기때문에 for 반복문은 필요 없음
- 더보기 글씨 click시 이동 (a Tag 활용)
- 클릭한 게시글(post.id)의 상세 내용으로 이동
- /post/{{post.id}} 로 이동이 가능하지만 url을 통해서 효율적으로 변경
상세보기 (더보기) 로 이동
※ 이동 후에는 안보여야 하는 기능들이 몇개 있다.
변수를 활용한 조건 만들기 (변수 = detail)
- (templates/mixin/posts/post_card.html)
- post_detail.html
- index.html (index에서는 detail이 보여야하기 때문에)
조건에 따른 내용 변경 (본문 내용 더보기, 댓글내용 더보기)
- post_card.html 중간 부분 (content)
<div class="card_content">
<span class="card__like-num">좋아요 00개</span>
<div class="card__main-text">
<p><span class="card__user-name">{{ post.writer }}</span>
{% if not detail %}
{{ post.content|truncatechars:35 }}
{% else %}
{{post.content}}
{% endif %}
</p>
{% if not detail %}
<a href="{% url 'posts:post-detail' post.id %}">더보기</a>
{% endif %}
</div>
<div>
<p class="">댓글 {{ post.comment_set.all.count }}개
{% if not detail %}
<a href="{% url 'posts:post-detail' post.id %}">모두보기</a>
{% endif %}
</p>
<ul class="card__comment-group">
{% if not detail %}
{% for comment in post.comment_set.all|slice:":2" %}
<li>
<p><span class="card__user-name">{{ comment.writer }}</span>{{ comment.content }}</p>
</li>
{% endfor %}
{% else %}
{% for comment in post.comment_set.all %}
<li>
<p><span class="card__user-name">{{ comment.writer }}</span>{{ comment.content }}</p>
</li>
{% endfor %}
{% endif %}
</ul>
</div>
Error 처리
강제로 특정 게시물로 이동
- id를 임의로 입력 → (페이지 없을때에는 Error 발생) → Main Page (index)로 이동
- try ~ except (페이지 존재하지않음) : index로 이동되게끔 Error 처리
반응형
'학습 > [The-Origin][SW][Backend] Main Pag' 카테고리의 다른 글
[The Origin][VSCODE][Django][CRUD] Delete (0) | 2022.04.22 |
---|---|
[The Origin][VSCODE][Django][CRUD] Update (0) | 2022.04.22 |
[The Origin][VSCODE][Django][CRUD] Read (0) | 2022.04.22 |
[The Origin][VSCODE][Django][CRUD] Create (0) | 2022.04.22 |
[The Origin][VSCODE][Django][CRUD] 실습 준비 (0) | 2022.04.22 |