created_at 필드의 year과 month 변수를 랜덤으로 바꾸는 부분에서 질문있습니다.
from instagram.models import Post
post_list = Post.objects.all()
import random
# for post in post_list:
post = post_list.get(pk=105)
year = random.choice(range(1990, 2020))
month = random.choice(range(1, 13))
print(post.created_at.year) # 첫번째 print
post.created_at = post.created_at.replace(year=year, month=month)
print(post.created_at.year) # 두번째 print
post.save()
print(post.created_at.year) # 세번째 print
year과 month 변수가 바뀌지 않아 print문으로 찍어보았는데요.
첫번째 print : 2021
두번째 print : 1994
세번째 print : 2021
이렇게 출력되었습니다. save 메서드를 호출하면서 원래대로 돌아간 것 같은데 혹시 지정해야하는 옵션이 있을까요?
잘 해결하셨습니다. 참고로 created_at 속성은 DB에 처음 저장될 때의 시각을 저장하기 위함이니 auto_now_add=True를 지정하시는 것이 맞으며, updated_at 속성은 매 변경 시각을 저장하기 위함이니 auto_now=True를 지정하는 것이 맞습니다. 그리고 created_at과 updated_at은 대개 직접 수정할 필요가 없습니다.