Commit 1eca0e95 authored by Aymeric Augustin's avatar Aymeric Augustin
Browse files

Added Django template backend.

parent 44de7218
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
# Since this package contains a "django" module, this is required on Python 2.
from __future__ import absolute_import

from django.core.exceptions import (
    ImproperlyConfigured, SuspiciousFileOperation)
from django.template.utils import get_app_template_dirs
+41 −0
Original line number Diff line number Diff line
# Since this package contains a "django" module, this is required on Python 2.
from __future__ import absolute_import

from django.conf import settings
from django.template.context import Context, RequestContext
from django.template.engine import Engine


from .base import BaseEngine


class DjangoTemplates(BaseEngine):

    app_dirname = 'templates'

    def __init__(self, params):
        params = params.copy()
        options = params.pop('OPTIONS').copy()
        options.setdefault('debug', settings.TEMPLATE_DEBUG)
        options.setdefault('file_charset', settings.FILE_CHARSET)
        super(DjangoTemplates, self).__init__(params)
        self.engine = Engine(self.dirs, self.app_dirs, **options)

    def from_string(self, template_code):
        return Template(self.engine.from_string(template_code))

    def get_template(self, template_name):
        return Template(self.engine.get_template(template_name))


class Template(object):

    def __init__(self, template):
        self.template = template

    def render(self, context=None, request=None):
        if request is None:
            context = Context(context)
        else:
            context = RequestContext(request, context)
        return self.template.render(context)
+3 −0
Original line number Diff line number Diff line
# Since this package contains a "django" module, this is required on Python 2.
from __future__ import absolute_import

import io
import string

+3 −0
Original line number Diff line number Diff line
# Since this package contains a "django" module, this is required on Python 2.
from __future__ import absolute_import

import sys

from django.conf import settings
+3 −0
Original line number Diff line number Diff line
# Since this package contains a "django" module, this is required on Python 2.
from __future__ import absolute_import

from django.middleware.csrf import get_token
from django.utils.functional import lazy
from django.utils.html import format_html