Как использовать Flask Jinja2 url_for с несколькими параметрами

Каждый!

У меня проблема, когда я использовал функцию jinja2 url_for().

У меня есть маршрут как:

@app.route('/article/<int:article_id>/<url_title>/', methods=['GET'])
def article_page(article_id, url_title):
    article = Article.query.get(article_id)
    if article == None:
        abort(404)
    return render_template('article.html', article=article)

в файле шаблона jinja я хочу создать URL, который ссылается на article_page, поэтому я пишу так:

<h5><a href="{{ url_for('article_page',article_id=article.id,url_title=article.url_title) }}">{{ article.title }}</a></h5>

но когда я запускаю эту страницу, я получаю сообщение об ошибке:

raise BuildError(endpoint, values, method)
BuildError: ('article_page', {'article_id': 1}, None)

кажется, что второй параметр 'url_title' отсутствует. Как правильно использовать url_for () с несколькими параметрами? Спасибо всем!

2 ответа

Решение

В соответствии с url_for документация:

Если значение аргумента запроса равно None, вся пара пропускается.

Удостоверься что url_title не является None,

Или укажите значение по умолчанию для url_title в article_page функция.

Вы пропустили точку, попробуйте это:

url_for('.article_page', article_id=article.id, url_title=article.url_title)
Другие вопросы по тегам