Как использовать 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)