Google App Engine: базовая проблема с Django - PullRequest
0 голосов
/ 03 марта 2010

Я использую шаблоны Django с Google App Engine. Я безуспешно пытаюсь распечатать меню.

Контроллер:

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>

Что я здесь не так делаю?

1 Ответ

5 голосов
/ 03 марта 2010
menu_items = {'menu_items': [{'href': '/', 'name': 'Home'},
                             {'href': '/cart', 'name': 'Cart'}],
              }
render('Views/menu.html', self, {'menu_items': menu_items})

Внимательно посмотрите на эти строки. menu_items (словарь) имеет ключ menu_items со значением, имеющим список типов. И вы передаете menu_items (dict) для рендеринга, поэтому для страницы в menu_items фактически ссылается на 'menu_items' (ключ).

Просто измените свой код так:

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

и все готово ...

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