Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Jinja2 template renderer for Django

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 django_cofingo
Octocat-spinner-32 .gitignore
Octocat-spinner-32 .travis.yml
Octocat-spinner-32 CHANGES
Octocat-spinner-32 LICENSE
Octocat-spinner-32 MANIFEST.in
Octocat-spinner-32 README.rst
Octocat-spinner-32 requirements.pip
Octocat-spinner-32 setup.py
README.rst

Cofingo is a combination of Coffin (http://github.com/coffin/coffin) and Jingo (http://github.com/jbalogh/jingo). It allows the usage of Jinja2 templates while keeping the tags and filters from Django (e.g. the URL tag)

Like Jingo the way to add custom filters, tags (extensions), and tests is by creating a helpers.py file in your app.

Getting started

The easiest way to install Cofingo is by using pip:

pip install django-cofingo

The development version can be found at:

http://github.com/mvantellingen/django-cofingo

Configuration

Add django_cofingo.Loader to your settings:

TEMPLATE_LOADERS = (
    'django_cofingo.Loader',
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
)

Templates are then rendered by Jinja2 whichever method is used (It works for class based views, TemplateResponse etc).

If you want to prevent that the templates of a specific app are rendered with Jinja2 then you can excluded them in your settings file:

COFINGO_EXCLUDED_APPS = ['admin', 'debug_toolbar']

(Note that these two apps are added by default)

Creating custom filters and extensions

Create a helpers module in your django app and add the following:

from django_cofingo.library import Library

library = Library()

If you want to add a filter add the following:

@library.filter
def my_custom_filter(value):
    return value + '-filtered'

Adding an extension can be done as follow:

from django_cofingo.library import Library
from django_assets.env import get_env
from webassets.ext.jinja2 import AssetsExtension

library = Library()
library.attr('assets_environment', get_env())
library.extension(AssetsExtension)

You can also add other modules with a library to Cofingo by specifying them in your settings.py file:

COFINGO_HELPERS = [
    'myproject.helpers'
]
Something went wrong with that request. Please try again.