페이징 처리에 좀더 나은 방법이 있을까요? > 자유게시판

자유게시판

페이징 처리에 좀더 나은 방법이 있을까요? 정보

페이징 처리에 좀더 나은 방법이 있을까요?

본문

운영중인 홈피에서 특정 object (상세페이지) 에서 리스트 버튼이나 breadcrumb 를 클릭했을 때

해당 object가 속한 페이지로 이동하도록 했습니다.

한 페이지 당 12개의 object를 가져옵니다.

 

1. 블로그

블로그 게시물의 경우 Featured 여부순, 작성일 역순으로 불러옵니다.

Featured : article_type 컬럼값이 1
Featured 가 아닌 것 : Article_type 컬럼값이 2
작성일 컬럼 : created_at
코드:

article = get_object_or_404(Article, id=id)
af = Article.objects.filter(status='1', article_type__in=['1', '2'])
if article.article_type == '1':
  xcount = len(af.filter(article_type='1', created_at__gte=article.created_at))
elif article.article_type == '2':
  xcount = len(af.filter(article_type='1')) + len(af.filter(article_type=article.article_type, created_at__gte=article.created_at))
page = math.ceil(xcount / 12) if xcount > 0 else 1

2. 책정보

책정보는 점수 역순, 책이름순으로 불러옵니다.
score: 점수
title: 책이름
코드:

 

book = get_object_or_404(Book, id=id)
limiter = len(Book.objects.all().order_by('-score').filter(score__gt=book.score))
xcount = limiter + len(Book.objects.filter(score=book.score, title__lte=book.title))
page = math.ceil(xcount / 12) if xcount > 0 else 1

페이지는 정상동작하지만 코드를 좀 더 간결하게 만들 수도 있을 것 같아서 글을 남깁니다,
감사합니다!

추천
1

댓글 0개

전체 195,301 |RSS
자유게시판 내용 검색

회원로그인

진행중 포인트경매

  1. 참여71 회 시작24.04.19 15:40 종료24.04.26 15:40
(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT