36. ZODB + TRAVERSAL WIKI TUTORIAL
32edit_url = request.resource_url(context, ’edit_page’)
33return dict(page = context, content = content, edit_url = edit_url)
34
35 @view_config(name=’add_page’, context=’.models.Wiki’,
36 |
renderer=’templates/edit.pt’) |
37def add_page(context, request):
38name = request.subpath[0]
39if ’form.submitted’ in request.params:
40body = request.params[’body’]
41page = Page(body)
42page.__name__ = name
43page.__parent__ = context
44context[name] = page
45return HTTPFound(location = request.resource_url(page))
46save_url = request.resource_url(context, ’add_page’, name)
47page = Page(’’)
48page.__name__ = name
49page.__parent__ = context
50return dict(page = page, save_url = save_url)
51
52 @view_config(name=’edit_page’, context=’.models.Page’,
53 |
renderer=’templates/edit.pt’) |
54def edit_page(context, request):
55if ’form.submitted’ in request.params:
56context.data = request.params[’body’]
57return HTTPFound(location = request.resource_url(context))
58 |
|
59 |
return dict(page = context, |
60 |
save_url = request.resource_url(context, ’edit_page’)) |
36.6.4 Adding Templates
Most view callables we’ve added expected to be rendered via a template. The default templating systems in Pyramid are Chameleon and Mako. Chameleon is a variant of ZPT, which is an XML-based templating language. Mako is a non-XML-based templating language. Because we had to pick one, we chose Chameleon for this tutorial.
The templates we create will live in the templates directory of our tutorial package. Chameleon templates must have a .pt extension to be recognized as such.