15. Django Shell - 모델 메소드

data_hamster·2023년 4월 25일
0

학습주제
Django Shell - 모델 메소드

학습내용
우리는 이미 Question의 메소드를 사용한 적이 있다. .save()가 그것이다.

복습하자면,

우리가 이렇게 .save()같은 메소드를 바로 사용할 수 있는 이유는 모델을 생성할 때, models.Model을 상속받기 때문이다. Model에서 정의된 save 메소드를 사용하는 것이다.
__str__도 마찬가지.

우리가 직접 불러서 사용할 수 있는 메소드를 만들어 본다.
기능: 가장 최근에 생성한 오브젝트인지 여부.

def was_published_recently(self):
	return self.pub_date >= timezone.now() - datetime.timedelta(days=1)

pub_date가 (지금보다 하루 전)보다 크면. 즉 어제보다 크면
timezone.now() - datetime.timedelta(days=1)는 어제를 의미. 지금-1일


True 라고 뜬다. 즉 어제보다 나중에 만들어졌다는 말.

was_published_recently(self):를 이용하여 True를 만족하는 question에 'new'라는 뱃지를 달아보려고 한다.

코드의 내용을 변경했으므로 장고 쉘을 재부팅.

최근에 만든 question 앞에 NEW!!! 가 붙은 것을 확인.

profile
반갑습니다 햄스터 좋아합니다

0개의 댓글