폼으로 댓글 기능 구현하기[1]

Posted on 2021-12-20 by GKSRUDTN99
Django로 웹사이트 만들기 Django

폼으로 댓글 기능 구현하기[1]


Comment 모델 만들기

1. models.py에 Comment 모델 추가하기

  • 댓글에 필요한 요소
    • 어떤 포스트에 대한 댓글인지를 저장하는 post 필드
    • 작성자를 저장할 author 필드
    • 댓글 내용을 담은 content 필드
    • 작성일시와 수정일시를 담은 created_at 필드와 modified_at 필드
  • 위 5개 필드를 포함한 Comment 클래스를 models.py에 추가한다.
class Comment(models.Model):
    post = models.ForeignKey(Post, on_delete=models.CASCADE)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    def __str__(self):
        return f'{self.author}::{self.content}'
  • 새로운 모델을 만들었으니 데이터베이스에 반영한다.
python manage.py makemigrations
python manage.py migrate

2. 댓글 작성 페이지 확인하기

  • Comment 모델을 Django Admin 페이지에서 확인할 수 있도록 admin.py를 다음과 같이 수정한다.
from django.contrib import admin
from markdownx.admin import MarkdownxModelAdmin
# 아래에서 Comment Class Import
from .models import Post, Category, Tag, PostImage, Comment

admin.site.register(Post, MarkdownxModelAdmin)


class CategoryAdmin(admin.ModelAdmin):
    prepopulated_fields = {'slug': ('name',)}


class TagAdmin(admin.ModelAdmin):
    prepopulated_fields = {'slug': ('name',)}


admin.site.register(Category, CategoryAdmin)

admin.site.register(Tag, TagAdmin)

admin.site.register(PostImage)
# Django Admin 페이지에 Comment Class 등록
admin.site.register(Comment)