Templating ========== The templates you make to use with Stoat are simply Django templates that take advantage of an extra variable. The Page Variable ----------------- When Stoat renders a template it adds a ``page`` variable to the context. This variable has a few properties you'll want to use. ``page.title`` ~~~~~~~~~~~~~~ The title of the page as defined in the admin interface. ``page.get_absolute_url`` ~~~~~~~~~~~~~~~~~~~~~~~~~ A normal Django ``get_absolute_url`` method that will return the page's URL. Page Fields ----------- ``page.fields`` ~~~~~~~~~~~~~~~ This property contains all of the fields you've defined in ``STOAT_TEMPLATES``, with their names lowercased and every non-letter/number replaced by an underscore. For example: look at the following ``STOAT_TEMPLATES`` setting:: STOAT_TEMPLATES = { 'Default': ['default.html', [ ['Heading', 'char'], ['Body', 'text'], ['Sidebar Heading', 'text'], ]], 'Product': ['pages/product.html', [ ['Price', 'int'], ['Description', 'text'], ['Image', 'img'], ['Image 2', 'img'], ]], } Here's what ``pages/product.html`` might look like:: {% extends "base.html" %} {% block content %}
Price: ${{ page.fields.price }}
{{ page.fields.description|linebreaks }} {% endblock %} You can use ``page.f`` as a shortcut for ``page.fields`` if you'd like to save on some typing. Navigation ---------- Each page also has some properties to help you build navigation in your templates. ``page.breadcrumbs`` ~~~~~~~~~~~~~~~~~~~~ A list of the page's ancestors and itself. For example, imagine you have the following page layout:: About Us | +-> The Team | +-> Jimmy | +-> Timmy For the "Timmy" page ``page.breadcrumbs`` will be ``[