The float value is {{ base_value_float }}
The string value is {{ base_value_string }}
The filter modified float value is {{ base_value_float | my_filterB(2)}}
The filter modified string value is {{ base_value_string | my_filterA(‘Deric’)}}
from docxtpl import DocxTemplate
import jinja2
jinja_env = jinja2.Environment()
# to create new filters, first create functions that accept the value to filter
# as first argument, and filter parameters as next arguments
def my_filterA(value, my_string_arg):
return_value = value + ' ' + my_string_arg
return return_value
def my_filterB(value, my_float_arg):
return_value = value + my_float_arg
return return_value
# Then, declare them to jinja like this :
jinja_env.filters['my_filterA'] = my_filterA
jinja_env.filters['my_filterB'] = my_filterB
context = {'base_value_string': ' Hello', 'base_value_float': 1.5}
tpl = DocxTemplate('templates/custom_jinja_filters_tpl.docx')
tpl.render(context, jinja_env)
tpl.save('output/custom_jinja_filters.docx')
# “|”作为管道符,将左侧的值传到到右侧函数,作为右侧函数的第一个参数
The float value is 1.5
The string value is Hello
The filter modified float value is 3.5
The filter modified string value is Hello Deric