2013-03-21 73 views
-1

爲什麼MAX_HEIGHT產生一個無效的語法錯誤?無效的語法Jinja2的模板值

main.py

max_height = 70 

template_values = { 
    'max_height': max_height # syntax error 
    ... 
} 

的index.html

<html> 
    <body>  
     {% for person in people %} 
      {% if person.filter("height <", max_height %) 
       <b>{{ person.first_name }}</b> 
       <b>{{ person.last_name }}</b> 
       <b>{{ person.city }}</b> 
       <b>{{ person.birth_year }}</b> 
       <b>{{ person.height }}</b> 
       <hr></hr> 
      {% endif %} 
     {% endfor %} 
    </body> 
</html> 

EDIT 1 下面是從main.py類的MainPage:

class MainPage(webapp2.RequestHandler): 
    def get(self): 

     people_query = Person.all() 
     people = people_query.fetch(10) 

     max_height = 70 

     template_values = { 
      'people': people 
      'max_height': max_height 
     } 

     template = jinja_environment.get_template('index.html') 
     self.response.out.write(template.render(template_values)) 

回答

1

這條線:

{% if person.filter("height <", max_height %) 

應該是這個樣子:

{% if person.filter("height <", max_height) %} 

另外,我建議不要在模板本身使用任何類型的過濾邏輯是這樣的。將該代碼放入應用程序代碼中,並使用該模板呈現HTML。

+0

+1謝謝攪拌機。我修復了代碼。我仍然遇到同樣的錯誤:'max_height':max_height。是不是模板值不允許我傳遞這樣的變量? – Anthony 2013-03-21 02:02:39

+1

@Anthony:什麼是錯誤? – Blender 2013-03-21 02:04:26

+0

錯誤是...第20行'max_height':max_height。 SyntaxError:無效的語法 – Anthony 2013-03-21 02:07:01