Подтвердить что ты не робот

Как использовать 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() с несколькими параметрами?

4b9b3361

Ответ 1

Согласно url_for документации:

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

Убедитесь, что url_title не является None.

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

Ответ 2

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

url_for('.article_page', article_id=article.id, url_title=article.url_title)