폼으로 댓글 기능 구현하기[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)