Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Django template loader that supports HamlPy
Latest commit cad815f @chartjes Merge pull request #19 from AbletonAG/master
Please publish current version to the package index

Djaml is a template loader for Django that allows you to use HamlPy in your templates

It is based on the django-shpaml-template-loader project, and is licensed under the MIT license.


  • Django -- I've tested it using Django 1.2.x, 1.3.0 and the version of Django that is included with the djangoappengine project
  • HamlPy -- tested using version as of December 4, 2010


You can either copy all the files into 'djaml' in the root of your Django project or install it using the included file.

Having done that, you need to add djaml as the first item in TEMPLATE_LOADERS


If you don't put djaml first, then the standard Django template loaders will try and process it first.

Make sure your templates have a .haml extension, and put them wherever you've told Django to expect to find templates.

Template caching

Just add django.template.loaders.cached.Loader to your TEMPLATE_LOADERS:

    ('django.template.loaders.cached.Loader', (


Here's a sample of what a Django layout file looks like using Haml:

# base.haml
            -block title
                Internet Baseball League
        %meta{'http-equiv': 'Content-Type', content: 'text/html; charset=UTF-8'}/
        %link{rel: 'stylesheet', type: 'text/css', href:'/site_media/css/grid.css'}/
        %link{rel: 'stylesheet', type: 'text/css', href:'/site_media/css/ibl.css'}/
        %script{src: "/site_media/js/modernizr-1.7.min.js"}
                %img{src: '/site_media/images/ibl_logo.gif', alt: 'IBL Logo'}<br>
                            %a{href: '{% url home %}'} Home
                            %a{href: ''} Archive

                - block content
                    Some text for the content

# one.haml
-extends 'base.haml'
-block title
     Another page
-block content
     .wide More content

     %form{action: '/', method: 'POST'}
        %button Vote!

Questions or Feedback

If you have any questions or comments, send some email to

Something went wrong with that request. Please try again.