def listSearchedSpecificPageWork(request): searchStr = request.GET['searchStr'] pageForView = request.GET['pageForView'] # 다음은 테이블에서 subject 항목에 대해 LIKE SQL을 수행한다. totalCnt = DjangoBoard.objects.filter(subject__contains=searchStr).count() pagingHelperIns = pagingHelper(); totalPageList = pagingHelperIns.getTotalPageList( totalCnt, rowsPerPage) # Raw SQL에 like 구문 적용방법.. 이 방법 찾다가 삽질 좀 했다. boardList = DjangoBoard.objects.filter(subject__contains=searchStr).order_by('-id')[int(rowsPerPage)*(int(pageForView)-1):int(rowsPerPage)*(int(pageForView)-1)+int(rowsPerPage)] print 'boardSearchedList', boardList return render_to_response('listSearchedSpecificPage.html', {'boardList': boardList, 'totalCnt': totalCnt, 'pageForView':int(pageForView) ,'searchStr':searchStr, 'totalPageList':totalPageList} )
def home(request): # model을 이용해서 별도 SQL 작성 없이 id 필드의 역순으로 (-id) 데이터를 2개만 조회해온다. boardList = DjangoBoard.objects.order_by('-id')[0:rowsPerPage] current_page =1 # model 을 사용해서 전체 데이터 갯수를 구한다. totalCnt = DjangoBoard.objects.all().count() # 이것은 페이징 처리를 위해 생성한 간단한 헬퍼 클래스이다. 별로 중요하지 않으므로 소스를 참조하기 바란다. pagingHelperIns = pagingHelper(); totalPageList = pagingHelperIns.getTotalPageList( totalCnt, rowsPerPage) print 'totalPageList', totalPageList # 템플릿으로 필요한 정보들을 넘기는 부분이다. 이를 통해서 정적인 템플릿에 동적인 데이터가 결합되게 되는 것이다. # 우리는 게시판 최초 화면 처리를 위해서 listSpecificPage.html 템플릿을 호출했다. # 그리고 필요한 정보들을 dictionary 로 전달했다. return render_to_response('listSpecificPage.html', {'boardList': boardList, 'totalCnt': totalCnt, 'current_page':current_page ,'totalPageList':totalPageList} )
def listSpecificPageWork(request): current_page = request.GET['current_page'] totalCnt = DjangoBoard.objects.all().count() print 'current_page=', current_page # 페이지를 가지고 범위 데이터를 조회한다 => raw SQL 사용안함 boardList = DjangoBoard.objects.order_by('-id')[int(rowsPerPage)*(int(current_page)-1):int(rowsPerPage)*(int(current_page)-1)+int(rowsPerPage)] print 'boardList=',boardList, 'count()=', totalCnt # 전체 페이지를 구해서 전달... pagingHelperIns = pagingHelper(); totalPageList = pagingHelperIns.getTotalPageList( totalCnt, rowsPerPage) print 'totalPageList', totalPageList return render_to_response('listSpecificPage.html', {'boardList': boardList, 'totalCnt': totalCnt, 'current_page':int(current_page) ,'totalPageList':totalPageList} )
def ssnview(request): boardList = SSNBoard.objects.order_by('-id')[0:rowsPerPage] current_page =1 totalCnt = SSNBoard.objects.all().count() pagingHelperIns = pagingHelper(); totalPageList = pagingHelperIns.getTotalPageList( totalCnt, rowsPerPage) print 'totalPageList', totalPageList context = { 'boardList': boardList, 'totalCnt': totalCnt, 'current_page':current_page, 'totalPageList':totalPageList } return render(request, "ssnview.html", context)
def DeleteSpecificRow(request): memo_id = request.GET['memo_id'] current_page = request.GET['current_page'] p = DjangoBoard.objects.get(id=memo_id) p.delete() # 마지막 메모를 삭제하는 경우, 페이지를 하나 줄임. totalCnt = DjangoBoard.objects.all().count() pagingHelperIns = pagingHelper(); totalPageList = pagingHelperIns.getTotalPageList( totalCnt, rowsPerPage) print 'totalPages', totalPageList if( int(current_page) in totalPageList): print 'current_page No Change' current_page=current_page else: current_page= int(current_page)-1 print 'current_page--' url = '/listSpecificPageWork?current_page=' + str(current_page) return HttpResponseRedirect(url)