상세 컨텐츠

본문 제목

[Django] 템플릿 필터 함수

Python/Django

by TUZA 2022. 9. 23. 00:15

본문

템플릿 필터 작성하기

# 템플릿 필터를 작성하기 전에 템플릿 필터 파일을 저정할 디렉터리 templatetags 가 필요하다.
#템플릿 필터 함수를 만드는 것은 간단하다.
#pybo_filter.py
from django import template


register = template.Library()



@register.filter
def sub(value, arg):
    return value- arg

#위 처럼 sub 함수에 @register.filter 애너테이션을 적용하면 템플릿에서 해당 함수를 필터로 사용할 수 있게 된다.
#sub 함수는 기존 값 value에서 입력으로 받은 값 arg를 빼서 리턴하는 함수이다.
{% extends 'base.html' %}
{% load pybo_filter %}
{% block content %}
<div class="container my-3">
    <table class="table">
        <thead>
        <tr class="table-dark">
            <th>번호</th>
            <th>제목</th>
            <th>작성일시</th>
        </tr>
        </thead>
        <tbody>
        {% if question_list %}
        {% for question in question_list %}
        <tr>
            <td>
                <!-- 번호 = 전체건수 - 시작인덱스 - 현재인덱스 + 1 -->
                {{ question_list.paginator.count|sub:question_list.start_index|sub:forloop.counter0|add:1 }}
                #forloop.counter0 은 현재인덱스를 말한다.
            </td>
            
'''
번호 = 전체건수-시작인덱스-현재인덱스+1

시작 인덱스는 페이지당 시작되는 게시물의 시작 번호를 의미한다.
예를 들어 페이지당 게시물을 10건씩 보여준다면 1페이지의 시작 인덱스는 1,2 페이지의 시작 인덱스는 11이다.
현재 인덱스는 페이지에 보여지는 게시물 개수만큼 0부터 1씩 증가되는 번호이다.


'''
반응형

'Python > Django' 카테고리의 다른 글

[Django] 회원가입  (0) 2022.09.25
[Django] 로그인과 로그아웃(작성중)  (0) 2022.09.23
[Django] 페이징  (1) 2022.09.22
[Django] 네비게이션바  (1) 2022.09.22
[Django] 폼(Form) 복습필요  (0) 2022.09.18

관련글 더보기