[django] 점프 투 장고 - 장고 심화 3, 4

Joy·2020년 6월 23일
0

Django | 점프투장고

목록 보기
13/22

템플릿 필터

템플릿 태그에서 | 문자 뒤에 사용하는 필터

게시물 번호 오류

기존 pybo는 페이지가 넘어가도 게시물 번호가 다시 1부터 시작함. 해결 필요

게시물 번호

페이지 별 질문글 번호 역순 정렬하기

번호 = 전체건수 - 시작인덱스 - 현재인덱스 + 1

템플릿 필터함수 만들기

템플릿 필터 파일 작성해서 필터함수 만들기

C:\projects\mysite\pybo\templatetags 이 디렉토리에만 생성 가능. pybo앱 하위에!!

pybo_filter.py 파일 작성

from django import template

register = template.Library()


@register.filter
def sub(value, arg):
    return value - arg
  • sub 함수는 기존 값(value)에서 입력으로 받은 값(arg)을 빼서 리턴하는 필터
  • 함수에 @register.filter 라는 어노테이션을 적용하면 템플릿에서 해당 함수를 필터로 사용할 수 있게

템플릿 필터함수 사용

템플릿에 적용하기

  • 로드하기
    템플릿 상단에 {% load pybo_filter %}
    코드는 {{ question_list.paginator.count|sub:question_list.start_index|sub:forloop.counter0|add:1 }}

    :: 전체건수 count - 시작인덱스 - 현재인덱스 + 1

테스트




답변갯수 표시하기

리스트 템플릿 수정

    {% if question.answer_set.count > 0 %}
    <span class="text-danger small ml-2">{{ question.answer_set.count }}</span>
    {% endif %}

profile
roundy

0개의 댓글