2016-10-30 10 views
0

皆、私はFlaskで問題に会った。 テーブルは、MySQLという名前のカテゴリにありますが、私はその後、それらのすべてを照会このように、a.htmlにそれらを渡さ:Flaskテンプレートで変数をネストすることはできますか?

return render_template('admin_index.html', username=session.get('username'), categories=categories) 

はadmin_index.htmlでは、私はそれらのすべてを一覧表示したい、ここに私のコードです:

    var _menus = {"menus":[{"menuid":"1","icon":"icon-sys","menuname":"category", 
           "menus":[ 
            {% for category in categories %} 
     {"menuid":"{{ category.id }}","menuname":"{{ category.name }}","icon":"icon-users","url":"{{url_for('admin.category', id={{category.id}} _external=True) }}"}, 
            {% endfor %} 
]}]}; 

が、私はこれを実行したとき、私はエラーを得た:

jinja2.exceptions.TemplateSyntaxError 
jinja2.exceptions.TemplateSyntaxError: expected token ':', got '}' 

私はOK、私は疑うそれがで巣変数に許可されていない判明、{{category.id}}削除を試してみましたフラスコテンプレートこのように:

{{ a is {{ b }} }} 

私はそれを入れ子にする方法はありますか?

答えて

1

あなたは既にジンジャー式の中にいます。だから、次のコードが実行されますので{

url_for("admin.category", id={{category.id}} _external=True) 

は、それが故に辞書誤差を見込んでいます。単に中括弧を省略category.idの値を使用するには

url_for("admin.category", id=category.id, _external=True) 

はまた、あなたが「_external」の前に,を忘れてしまったことに注意してください。

+0

本当にありがとうございます。 – TreeCatCat

関連する問題