Я хотел бы сделать что-то вроде ниже.Inject визуализированный контент из нескольких видов в Pyramid в один базовый шаблон
Я следующие маршруты конфигурации:
config.add_route('home', '/')
config.add_route('foo', '/foo')
следующие виды:
@view_config(route_name='home', renderer='templates/home.pt')
def home_view(request):
return {...}
@view_config(route_name='foo', renderer='templates/foo.pt')
def foo_view(request):
return {...}
Существует базовый шаблон 'шаблоны/base.pt':
<!DOCTYPE html>
<html>
<head></head>
<body>
Welcome ${user_id}<br>
<a href="/foo">Foo</a><br>
<div id="content">
<!-- Inject rendered content here from either/or /foo -->
</div>
</body>
</html>
сейчас в моих представлениях я хотел бы добавить следующий контент в div с идентификатором «content»:
<!-- templates/home.pt -->
<div id="home-content">Home content</div>
<!-- templates/foo.pt -->
<div id="foo-content">Foo content</div>
Как будет идти об изменении home_view и foo_view выше, так что они могут вводить свои собственные шаблоны (home.pt, foo.pt) в base.pt? Как-то мне также нужно передать данные, такие как $ {user_id} в base.pt. Когда я определял свои представления, я играл с аргументом обертки, но не мог понять, как это работает.
Это выглядит более или менее exacly, что я хочу. Я думаю, что разные методы представления должны были бы получить базовый-dict из некоторого распространенного метода и добавить к нему дополнительные данные перед возвратом? (Поскольку все шаблоны, использующие base.pt, должны иметь одинаковые базовые данные, которые base.pt будет отображать, в этом примере только user_id, но для моего реального base.pt у меня больше данных, которые являются общими) – ralphtheninja
@MagnusSkog да, точно. – DzinX
Всегда приятно иметь возможность получать деньги от сообщества :) Спасибо! – ralphtheninja