Flash Flasks сообщения со списком категорий в шаблон HTML5 jinja2 - PullRequest
0 голосов
/ 03 октября 2019

Идея состоит в том, чтобы использовать расширенную мультиформную форму, в которой я хочу указывать флэш-сообщения.

В колбе можно указывать категории «a», «b», писать строки для каждой категории и использоватьАргумент категории.

Это создает немного избыточного кода, поэтому хотелось бы узнать, можно ли отправить список в качестве аргумента категории и отфильтровать его.

Один из способов сделать это - использовать for в Python, и для каждой n желаемых категорий повторно отправлять флэш-память n раз, было бы лучше просто отправить одну флэш-память со всеми желаемыми категориями.

Использованиев колбе такие категории: с использованием Python

@app.route('/')
def app_session():
    flash('This is a flash message with category a', 'a')
    flash('This is a flash with category b', 'b')
    return render_template('template.html')

с использованием HTML5 и jinja2

<p>
    {% with messages = get_flashed_messages(category_filter=["a"]) %}
        {% if messages %}
            <ul class=flashes>
                {% for message in messages %}
                    <li>{{ message }}</li>                              
                {% endfor %}
            </ul>
        {% endif %}
    {% endwith %}
</p>

Теперь идея заключается в следующем:

#in python
flash('This is a flash message with categories a and c ', ['a','c'])
#in both html5 jinjas
{% with messages = get_flashed_messages(category_filter=["c"]) %}

Приветствия

1 Ответ

0 голосов
/ 03 октября 2019

Вы можете обезьяньим патчем flask.flash:

from flask import flash

def flash_categories(message, categories=['message']):
    for category in categories:
        flash(message, category=category)


import flask
flask.flash = flash_categories
...