/templatetags/filters.py
from django import template
register = template.Library()
# Или традиционно можно записать так:
from django.template import Library
register = Library()
# Регистрация фильтров.
register.filter('cut', cut) # 1 - имя фильтра, 2 - сама функция фильтра.
register.filter('lower', lower) # 1 - имя фильтра, 2 - сама функция фильтра.
# Функция фильтра.
def cut(value, arg): # 1 - значение переменной в шаблоне, 2 - параметр самого фильтра.
"Удаляет все значения аргумента arg из строки value."
return value.replace(arg, '')
# Пример использования нашего фильтра.
# {{ my_var|cut:'0' }}
# Функция фильтра.
def lower(value): # 1 - значение переменной в шаблоне, 2 - параметра самого фильтра нет.
"Преобразовывает регистр строки в строчный."
return value.lower()
# Пример использования нашего фильтра.
# {{ my_var|lower }}
# Альтернативный вариант регистрации фильтров.
@register.filter(name='cut')
def cut(value, arg):
return value.replace(arg, '')
@register.filter
def lower(value):
return value.lower()
# Если вы опустите аргумент name в @register.filter, как это сделано во втором примере, то Django будет использовать имя функции в качестве имени фильтра.
# Полный пример шаблонной библиотеки фильтров.
/templatetags/filters.py
from django import template
register = template.Library()
@register.filter(name='cut')
def cut(value, arg):
return value.replace(arg, '')
@register.filter(name='lower')
def lower(value):
return value.lower()
Комментариев нет:
Отправить комментарий