18

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のテンプレートファイルに、article_pageへリンクするURLを作りたいので、こんな感じで書きます。

<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)

2番目のパラメーターurl_titleが欠落しているようです。url_for()複数のパラメータを正しく使用するにはどうすればよいですか?

4

2 に答える 2

8

url_forドキュメントによると:

クエリ引数の値が None の場合、ペア全体がスキップされます。

url_titleでないことを確認してくださいNone

url_titleまたは、関数でのデフォルト値を指定しますarticle_page

于 2013-12-28T03:35:55.387 に答える