2010-04-01 15 views
6

Điều này đang sử dụng khung ứng dụng web chứ không phải Django.Công cụ Google App Engine (python): TemplateSyntaxError: 'for' với năm từ phải kết thúc bằng 'đảo ngược'

Mã mẫu sau đây cung cấp cho tôi các câu lệnh MẫuSyntaxError: 'for' có năm từ phải kết thúc bằng lỗi 'đảo ngược' khi tôi cố gắng hiển thị từ điển. Tôi không hiểu điều gì gây ra lỗi này. Ai đó có thể làm sáng tỏ nó cho tôi?

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

Tôi đang làm cho nó sử dụng như sau:

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

Trả lời

13

This is using the web app framework, not Django.

Nhưng khuôn khổ ngoài, bạn phải sử dụng khuôn mẫu của Django - và dường như trong một phiên bản cũ, mà không hỗ trợ kiểu "tự động giải nén" của for - có lẽ là phiên bản 0.96 là phiên bản mặc định cho Máy ứng dụng. Để sử dụng bất kỳ phần nào của hơn Django hiện đại (bao gồm cả "chỉ là mẫu"), bạn phải có một file settings.py và làm:

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

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

theo the docs. Sau đó, bạn có thể from django import template và bạn sẽ sử dụng phiên bản 1.1 của công cụ tạo khuôn mẫu của Django.

+0

Martellipedia lại làm điều đó! Cảm ơn. – Phil

+0

@Phil, bạn được chào đón! -) –

Các vấn đề liên quan