👉 장고 클론코딩 2일차
👉 프로젝트 S.A 피드백 수렴/보완
1) 구현한 기능
2) 코드 설명
# content/models.py
class contentComment(models.Model):
class Meta:
db_table = "comment"
content = models.ForeignKey(contentModel, on_delete=models.CASCADE)
author = models.ForeignKey(UserModel, on_delete=models.CASCADE)
comment = models.CharField(max_length=256)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
# content/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('content/<int:id>',views.detail_comment,name='detail-content'), # 해당 번호의 게시글과 댓글들 읽어오기
path('content/comment/<int:id>',views.write_comment, name='write-comment'), # 해당 id 트윗에 댓글을 작성
path('content/comment/delete/<int:id>',views.delete_comment, name='delete-comment'), # 해당 번호 댓글 삭제
]
# content/views.py
from django.shortcuts import render, redirect
from .models import ContentModel, ContentComment
from django.contrib.auth.decorators import login_required
# 게시글 상세 페이지
@login_required
def detail_content(request, id):
my_content = ContentModel.objects.get(id=id)
content_comment = ContentComment.objects.filter(content_id=id).order_by('-created_at')
return render(request, 'content/content_detail.html', {'content': my_content, 'comment': content_comment})
# 댓글 작성
@login_required
def write_comment(request, id):
if request.method == 'POST':
comment = request.POST.get("comment", "")
current_content = ContentModel.objects.get(id=id)
CC = ContentComment()
CC.comment = comment
CC.author = request.user
CC.content = current_content
CC.save()
return redirect('/content/'+str(id))
# 댓글 삭제
@login_required
def delete_comment(request, id):
comment = ContentComment.objects.get(id=id)
current_content = comment.content.id
comment.delete()
return redirect('/content/'+str(current_content))
3) 진행 내용