Мой пользовательский шаблонный шаблон Jinja не будет регистрироваться или работать? - PullRequest
0 голосов
/ 30 июня 2019

Я создал пользовательский фильтр, но мой сервер Flask получает внутреннюю ошибку.

@app.template_filter('doSomething')
def doSomething(input):
    print(input)
    return input

HTML

<p>{{ doSomething('Test') }}</p>

Error

jinja2.exceptions.UndefinedError: 'doSomething' is undefined

Ответы [ 2 ]

1 голос
/ 01 июля 2019

В документации говорится:
doSomethingWith({{ user.username|tojson|safe }});, что означает, что объект user.username будет сериализован в json и затем передан в doSomethingWith, который является функцией JavaScript;
не похоже на {{doSomethingWith(user.username|tojson|safe);}}, который вы использовали в своем примере, который выглядит так, как будто вы пытаетесь явно вызвать функцию python из шаблона, поэтому попробуйте это, и если у вас все еще есть какие-либо проблемы, расскажите нам больше о том, чего именно вы пытаетесь достичь.

0 голосов
/ 30 июня 2019

После некоторого поиска, проб и ошибок, это единственное, что мне подходит:

def doSomething(input):
    print(input)
    return input

app.jinja_env.globals.update(doSomething=doSomething)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...