2023/10/15 블로그 만들기 프로젝트 기록
django-comments, django-comments-xtd 가지고 날로 먹을 수 있을 줄 알았는데 직접 만드는게 나아 보인다.
기능 자체는 이거저거 많이 있는 것 같은데, is_public, is_removed 같은걸 변경해도 안없어지네? 안지워지네? 이거 디버깅하느니 minimal implementation 부터 직접 만들고 차차 기능 확장하는게 낫겠다. 코드 까서 좀 봤는데 별거 없다.
-> 대댓글 말고 댓글만 만들어 붙였음. 모델 구조상으론 nesting 가능한데, view/templates 이 아직이라 내일 이어서...
templates/[APP]/base.html 을 만들고 공통코드를 넣고 몇 가지 block 지정. {% extends '[APP]/base.html' %} 하고 페이지마다 적당히 블럭을 채워주도록 고침. 하는김에 지금 있는 템플릿 파일들 모두 templates/[APP]/ 으로 이동. 몇몇 조각 뷰는 파일 이름을 underscore(_) 로 시작하게 만들어 알아보기 쉽게 했다.
포스팅에 draft 상태를 넣어야 한다. 글을 쓰다가 중간 저장해두고 나중에 이어쓰고 싶을 수도 있으니까.
-> 금방 되는거라서 is_published, published_at 추가. 마이그레이션 후에 published_at 에 created_at 을 넣었다.
>>> Post.objects.update(published_at=F('created_at'), is_published=True)
그리고 pre_post에서 아래 추가. 최초 publish 될 때에 updated_at 을 published_at 에 넣는다.
if instance.is_published and not instance.published_at:instance.published_at = instance.updated_at
태그에 연결된 포스팅 가져오는 부분도 아래와 같이 is_published 조건을 걸었다.
Tag.objects.annotate(num_posts=Count('post', filter=Q(post__is_published=True)))