2010-03-03 77 views
0

我正在使用Google App Engine的Django模板。我试图打印出一个菜单失败。Google App Engine:基本Django问题

控制器:

menu_items = { 
    'menu_items': [ 
     { 
      'href': '/', 'name': 'Home' 
     }, 
     { 
      'href': '/cart', 'name': 'Cart' 
     } 
    ], 
} 

render('Views/menu.html', self, {'menu_items': menu_items}) 
# ... 
def render(filename, main, template_values): 
    path = os.path.join(os.path.dirname(__file__), filename) 
    main.response.out.write(template.render(path, template_values)) 

menu.html:

<ul> 
    {% for page in menu_items %} 
    <li><a href="{{page.href}}">{{page.name}}</a></li> 
    {% endfor %} 
</ul> 

产生的HTML:

<li><a href=""></a></li> 

我在做什么错在这里?

回答

5
menu_items = {'menu_items': [{'href': '/', 'name': 'Home'}, 
          {'href': '/cart', 'name': 'Cart'}], 
       } 
render('Views/menu.html', self, {'menu_items': menu_items}) 

仔细看这几行。 menu_items(字典)有一个key_ menu_items,其值为一个类型列表。你传递menu_items(dict)来渲染,所以menu_items中的页面实际上是指'menu_items'(键)。

只要改变你的代码看起来像:

menu_items = [{'href': '/', 'name': 'Home'}, {'href': '/cart', 'name': 'Cart' }] 

就大功告成了...