모델 수정

이번에는 게시된 날짜와 수정된 날짜를 추가해 보도록 하겠습니다.

Cafe 모델에 published_datemodified_date 필드를 추가합니다.

from django.db import models

class Cafe(models.Model):
    name = models.CharField(max_length=50)
    mainphoto = models.ImageField(blank=True, null=True)
    published_date = models.DateTimeField(auto_now_add=True)
    modified_date = models.DateTimeField(auto_now=True)
    content = models.TextField()
    
    def __str__(self):
        return self.name

DateTimeField에서 auto_now_add=True 옵션을 주면 모델 개체 생성 시간이 자동으로 저장되고, auto_now=True 옵션은 모델 개체 생성 뿐 아니라 수정 시에도 시간이 자동으로 저장됩니다.

다음의 makemigrations 명령어 수행 시 사진과 같이 두가지 선택 사항이 나옵니다.

(myvenv)root@goorm:/workspace/컨테이너명/mysite# python manage.py makemigrations

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/76b26fca-7242-4c25-9652-96c10d867801/Untitled.png

원래 저장되어있던 1~3번 카페의 published_date 값을 정해야 하기 때문입니다.

우리는 1번 사항을 선택합니다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/e99b7316-97b6-4e7c-b6ba-b3471223d704/Untitled.png

그러면 넣을 값을 정하라고 나오는데 default가 timezone.now 즉 현재시간입니다. 그냥 엔터를 치거나 timezone.now를 입력하고 엔터를 칩니다. 그러면 현재 저장되어 있는 카페들의 published_date 값은 현재 시간으로 저장됩니다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/95588d53-e141-4a7f-a0c2-02ce3ff73365/Untitled.png

<aside> 💡 modified_date의 경우 신경쓰지 않아도 됩니다. 수정 때마다 자동으로 현재 시간이 저장되기 때문입니다.

</aside>