Google App Engine (python): TemplateSyntaxError: операторы for с пятью словами должны заканчиваться на «обратный» - PullRequest
6 голосов
/ 02 апреля 2010

Это использует каркас веб-приложения, а не Django.

Следующий код шаблона дает мне TemplateSyntaxError: операторы 'for' с пятью словами должны заканчиваться ошибкой 'reversed' , когда я пытаюсь отобразить словарь. Я не понимаю, что является причиной этой ошибки. Может ли кто-нибудь пролить свет на это для меня?

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

Я рендеринг, используя следующее:

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

1 Ответ

13 голосов
/ 02 апреля 2010

Это использует каркас веб-приложения, не Джанго.

Но кроме фреймворка, вы должны использовать шаблонизацию Django - и, очевидно, в старой версии, которая не поддерживает стиль "1001 *" автоматической распаковки - вероятно, версию 0.96 , которая является по умолчанию для App Engine. Чтобы использовать любую часть более современного Django (включая «только шаблоны»), вы должны иметь файл settings.py и выполнить:

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

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

согласно документам . После этого вы можете from django import template, и вы будете использовать версию 1.1 движка шаблонов Django.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...