2010-03-03 113 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' }] 

就大功告成了...