Как передать отдельную переменную jinja в цикле jinja функции Python в качестве параметра? - PullRequest
1 голос
/ 19 мая 2019

Я хочу передать отдельную переменную jinja внутри цикла jinja функции python в качестве параметра. В этом случае мне нужно передать {{book.isbn}} внутри цикла jinja в функцию python, чтобы использовать это значение.

Я пытался использовать href = "{{url_for (...)}}", но он срабатывает только при нажатии на ссылку. Мне нужно, чтобы он срабатывал каждый раз при запуске цикла.

{% for book in books %}
   {{ book.isbn }}
{% endfor %}

Я хочу получить {{book.isbn}}, чтобы я мог обработать его и вывести другую переменную на основе этого значения. Я также хочу сделать это для каждого значения «книги» в списке книг, поэтому я не могу сделать это вручную в другом месте.

1 Ответ

0 голосов
/ 19 мая 2019

Я думаю, что если вы передадите свою функцию в качестве аргумента ключевого слова в вашем методе рендеринга, это должно сработать.

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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...