작성된 글을 읽어오고 삭제해보자.
1. 작성된 글을 읽어오기 (이전에 작성된 내용 이어서 작성)
1-1. view.py
# tweet/views.py
# 변경사항
user = request.user.is_authenticated # 사용자가 로그인이 되어 있는지 확인하기
if user: # 로그인 한 사용자라면
return render(request, 'tweet/home.html')
==>
user = request.user.is_authenticated # 사용자가 로그인이 되어 있는지 확인하기
if user: # 로그인 한 사용자라면
# Tweet 모델에서 모든 글을 역순으로 정렬하여 all_tweet에 저장
all_tweet = TweetModel.objects.all().order_by('-created_at')
# tweet/home.html을 화면에 띄우면서 {'tweet':all_tweet} 라는 데이터를 화면에 전달
return render(request, 'tweet/home.html', {'tweet': all_tweet})
1-2. home.html
<!-- 템플릿 언어로 tweet라는 리스트로 전달받아서 반복문으로 출력 -->
{% for tw in tweet %}
<div class="media">
<div class="media-body">
<h5 class="mt-0">{{ tw.content }}</h5> <!-- 해당 글의 내용 -->
</div>
<div style="text-align: right">
<!-- 해당 글의 작성자의 이름 - 해당 글의 작성시간 | 의 이전 -->
<span style="font-size: small">{{ tw.author.username }}-{{ tw.created_at|timesince }} 전</span>
</div>
</div>
{% endfor %}
2. 작성된 글 삭제하기 : 게시물의 고유한 id값을 기준으로 삭제(/tweet/delete/게시글의id)
2-1. view.py
# tweet/views.py
from django.contrib.auth.decorators import login_required
@login_required # 사용자 로그인 중
def delete_tweet(request, id): # 인자로 id 값을 가져온다
my_tweet = TweetModel.objects.get(id=id) # Tweet 모델에서 id값의 글을 가져온다
my_tweet.delete() # 해당 글 삭제
return redirect('/tweet')
2-2. tweet/urls.py : 글 삭제의 경우 delete/게시글의id 으로 보내기 위해 path를 추가
# tweet/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name='home'),
path('tweet/', views.tweet, name='tweet'),
# int:id 로 id값을 숫자로 받아온 url을 생성
path('tweet/delete/<int:id>', views.delete_tweet, name='delete-tweet'),
]
2-3. home.html
<!-- templates/tweet/home.html -->
{% if tw.author == user %} <!-- 해당 글의 작성자가 로그인한 사용자일 경우 삭제div 노출 -->
<div style="text-align: right">
<a href="/tweet/delete/{{ tw.id }}"> <!-- 해당 글의 id값을 가진 url : 이 url로 접속시 글 삭제-->
<span class="badge rounded-pill bg-danger">삭제</span>
</a>
</div>
{% endif %}
3. 결과화면

'Python > Django' 카테고리의 다른 글
| TODAY LUNCH 팀 프로젝트 - 1 (0) | 2022.06.03 |
|---|---|
| Django ORM 데이터 관계 (0) | 2022.05.31 |
| Django 글쓰기 기능 구현 (0) | 2022.05.31 |
| Django 사용자 로그인 상태 확인 & 로그아웃 (0) | 2022.05.31 |
| Django의 사용자 모델을 적용수정하자. (0) | 2022.05.31 |