我想将jinja循环内的单个jinja变量传递给python函数作为参数。在这种情况下,我需要在jinja循环内将{{book.isbn}}传递给python函数,以便使用此值。
我尝试使用href =“ {{url_for(...)}}”“,但只有在单击链接时才会触发。我需要它在每次循环运行时触发。
{% for book in books %}
{{ book.isbn }}
{% endfor %}
我想获取{{book.isbn}},以便我可以对其进行处理并根据该值输出另一个变量。我还想对书籍列表中的每个“书籍”值执行此操作,因此,我无法在其他位置手动执行此操作。
答案 0 :(得分:0)
我认为,如果您在render方法中将函数作为关键字参数传递,它应该可以解决问题。
from jinja2 import Template
template = Template("""
{% for book in books %}
{{ custom_function(book.isbn) }}
{% endfor %}
""")
from collections import namedtuple
Book = namedtuple('Book', ['name', 'isbn'])
books = [
Book('a', 1),
Book('b', 2),
Book('c', 3)
]
def custom_function(isbn):
return isbn + 1
print(template.render(books=books, custom_function=custom_function))