2016-10-30 5 views
0

모두들, 나는 플라스크에서 문제를 만났습니다. 테이블은 MySQL의 이름이 범주에있다, 그때, 그들 모두를 쿼리과 같이 a.html 그들을 통과 :플라스크 템플릿에 변수를 중첩시킬 수 있습니까?

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 '}' 

을 나는 시도 제거 {{category.id}}, OK, 나는이에 둥지 변수를 허용하지 않는다 의심 밝혀졌다 플라스크 템플리트 like :

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

관련 문제