Q&A
책을 따라하다가 막히는 부분이 있나요?
질문을 남겨주세요.
이 페이지는 의견 교환을 위해 따로 만든 페이지입니다. 책에서 이 페이지를 만드는 법을 직접적으로 다루지는 않습니다.
하지만, 책을 끝까지 읽고 나면 이 페이지도 만드실 수 있을거에요.
하지만, 책을 끝까지 읽고 나면 이 페이지도 만드실 수 있을거에요.
[독자 질문] 카테고리 페이지에 pagenated_by 를 어떻게 적용하나요?
3 years, 7 months ago
sungyong며칠전 저희에게 아래와 같은 질문이 들어왔습니다.
다른 분들에게도 도움이 될 것 같아, Q&A 게시판에 공개를 하고자 합니다.
아래는 질문 내용입니다 .
다름이 아니오라 가족들 사진을 많이 올리다보니
카테고리 페이지가 너무 길어지는 경향이 있어 일반 포스트 리스트 페이지와 같이 Paganated_by를 적용하고 싶은데
category_page 클래스형이 아닌 함수형으로 되어 있어 적용이 안돼네요...
Pagenation을 임포트해서 하라는 포스트 들이 많던데... 적용을 해봐도 영... 잘 안되네요...
혹시 이부분과 관련하여 조언을 부탁드려도 괜찮을까요?
목록보기
sungyong 3 years, 7 months ago
안녕하세요. category_page 역시 CBV로 바꿔주면 post_list.html을 건드리지 않고도 바꿀 수 있습니다.
먼저, views.py에 PostList 클래스를 상속받은 PostListByCategory 클래스를 만듭니다.
그리고 기존의 category_page는 주석처리 하시고요.
PostList의 모든 기능은 그대로 가져오면서, get_queryset 함수를 오버라이딩하여 해당 category의 Post들만 불러오도록 했습니다. 특히, order_by 함수를 이용해서 pk 역순으로 보여주도록 했습니다.
그리고, get_context_data 함수도 오버라이딩 해서, category page가 추가적으로 제공해야 하는 'category'를 처리합니다. 이 부분이 있어야 post_list.html 상단에 아래와 같이 회색 버튼 모양으로 카테고리 명을 표시할 수 있습니다. 만약, 이 부분이 불필요하시다면, get_context_data함수는 스킵하셔도 됩니다.
category_page는 주석처리 해버렸으니, urls.py에서도 수정을 해줘야 하죠. 아래와 같이 수정해주세요.
이제 페이지에 접속해보시면, 잘 될겁니다.
Updated: April 15, 2021, 7:22 p.m.
play 3 years, 7 months ago
저자님 너무 감사합니다~~ 잘 작동합니다~~ 항상 건강하십시오~~~ ^^
Updated: April 15, 2021, 9 p.m.
Leave a Comment: