ks.dgoon.lee log

2023/10/15 블로그 만들기 프로젝트 기록


2023/10/15 22:28:53 #django #dev

댓글 시스템

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)))



댓글 4개

2023/10/16 21:42:52 dgoon
댓글 시스템에
* 대댓글 추가
* 입력할때 넣은 비번 기반 수정/삭제 기능 추가
잘 동작하는지 보기 위해 댓글로 달아본다.
⤷ 댓글을 작성해 주세요. 비밀번호는 나중에 댓글을 수정하거나 삭제할 때 필요합니다.

2023/10/16 22:00:15 dgoon
테스트용 대댓글도 한번
⤷ 댓글을 작성해 주세요. 비밀번호는 나중에 댓글을 수정하거나 삭제할 때 필요합니다.

⤷ 삭제된 댓글입니다

2023/10/16 22:01:27 dgoon
그리고 댓글은 삭제해도 위치는 유지된다. 트리가 깨지면 머리아프니까, 그냥 삭제되었습니다 보여주는걸로.
댓글 갯수도 그냥 삭제/숨김 처리된 댓글 다 포함해서 보여주는걸로...
⤷ 댓글을 작성해 주세요. 비밀번호는 나중에 댓글을 수정하거나 삭제할 때 필요합니다.