반응형
이번에는 일기를 쓸 수 있도록 기능을 구현해보겠습니다. accounts앱을 만들었던 것처럼 똑같이
py manage.py startapp mydiary
이 것을 메인 프로젝트로 shell을 옮긴뒤 생성해줍니다. urls.py도 선언해줍니다. 전 시간에 해봤죠?
글쓰기위해서 models.py에서 모델링을 해줘야합니다.
from django.db import models
from django.contrib.auth.models import User
from datetime import datetime
from django.utils import timezone
class Post(models.Model):
username = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=100)
photo = models.ImageField(null=True,blank=True)
content = models.CharField(max_length=4000)
pub_date = models.DateTimeField(auto_now=True)
weather = models.CharField(max_length=15)
emotion = models.CharField(max_length=15)
def publish(self):
self.pub_date = timezone.now()
self.save()
def __str__(self):
return "%s - %s" % (self.username, self.title)
일기를 작성하려면 Post라는 함수에 유저네임, 일기제목, 사진한개, 일기내용, 업로드날짜, 날씨, 기분을 저장할수 있게 만듭니다. pub_date에다 timezone.now()를 넣으면 현재시간을 넣게됩니다.
___str___은 이제 관리자 페이지에서 볼수있게 유저이름이랑 제목만 간단하게 나타낼수있도록 했습니다.
이렇게 admin페이지에서 보여지는 것입니다. 이렇게 보여주기위해서는 mydiary(자신의 앱)안에있는 admin.py파일로 가셔서
from django.contrib import admin
from .models import Post
# Register your models here.
admin.site.register(Post)
ddd이렇게 선언을 해주어야합니다. admin.py는 django에서 제공하는 관리자페이지를 커스텀해 줄 수있게 하는 것입니다.
이제 모델을 적용했으니 마이그레이션을 해줘야합니다.
# 마이그레이션 파일 생성
$ python manage.py makemigrations <app-name>
# 마이그레이션 적용
$ python manage.py migrate <app-name>
# 마이그레이션 적용 현황
$ python manage.py showmigrations <app-name>
# 지정 마이그레이션의 SQL 내역
python manage.py sqlmigrate <app-name> <migration-name>
이렇게 마이그레이션을 적용시켜주면 DB에 적용을 시킬 수 있습니다.
이제 모델링을 했으니 views.py에서 동작하게 만들어야겠죠?
이것은 다음시간에 설명해드리겠습니다.
반응형
'Personal Project' 카테고리의 다른 글
django로 diary 만들기 [mydiary(글쓰기) 세션 구현] -3 (0) | 2020.08.08 |
---|---|
django로 diary 만들기 [mydiary(글쓰기) 세션 구현] -2 (0) | 2020.08.07 |
django로 diary 만들기 [accounts(회원) 세션 구현] -3 (0) | 2020.08.07 |
django로 diary 만들기 [accounts(회원) 세션 구현] -2 (0) | 2020.08.07 |
django로 diary 만들기 [accounts(회원) 세션 구현] -1 (2) | 2020.08.07 |
댓글