2010-04-01 6 views
6

Esto está utilizando el marco de la aplicación web, no Django.Google App Engine (python): TemplateSyntaxError: las instrucciones 'for' con cinco palabras deben terminar en 'reverseed'

El siguiente código de plantilla me da un TemplateSyntaxError: las instrucciones 'para' con cinco palabras deben terminar en 'invertido' cuando trato de procesar un diccionario. No entiendo qué está causando este error. ¿Alguien podría arrojar algo de luz sobre mí?

{% for code, name in charts.items %} 
    <option value="{{code}}">{{name}}</option> 
{% endfor %} 

estoy haciéndolo utilizando la siguiente:

class GenerateChart(basewebview): 

    def get(self): 
     values = {"datepicker":True} 
     values["charts"] = {"p3": "3D Pie Chart", "p": "Segmented Pied Chart"} 
     self.render_page("generatechart.html", values) 

class basewebview(webapp.RequestHandler): 
    ''' Base class for all webapp.RequestHandler type classes ''' 
    def render_page(self, filename, template_values=dict()): 
     filename = "%s/%s" % (_template_dir, filename) 
     path = os.path.join(os.path.dirname(__file__), filename) 
     self.response.out.write(template.render(path, template_values)) 

Respuesta

13

This is using the web app framework, not Django.

Pero aparte marco, debe utilizar plantillas de Django - y, al parecer, en una versión antigua, que no es compatible con el El estilo de "desempaquetado automático" de for es probablemente la versión 0.96 que es la predeterminada para App Engine. Para utilizar cualquier parte de Django más moderna (incluyendo "sólo las plantillas") debe tener un archivo settings.py y hacer:

import os 
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' 

from google.appengine.dist import use_library 
use_library('django', '1.1') 

según the docs. Después de eso, puede from django import template y estará usando la versión 1.1 del motor de plantillas de Django.

+0

¡Martellipedia lo hace de nuevo! Gracias. – Phil

+0

@Phil, de nada! -) –