X-Git-Url: https://git.mdrn.pl/django-ssify.git/blobdiff_plain/64c5163e7aead7eb60951e040998ade343c079c5..49bb850ee3f5c4fbd32643c6019b8e1c8ccf619a:/ssify/templatetags/ssify.py diff --git a/ssify/templatetags/ssify.py b/ssify/templatetags/ssify.py index b0ecd04..a98a463 100644 --- a/ssify/templatetags/ssify.py +++ b/ssify/templatetags/ssify.py @@ -4,9 +4,15 @@ # from __future__ import absolute_import, unicode_literals from django.conf import settings -from django.core.urlresolvers import NoReverseMatch, reverse, resolve +try: + from django.urls import NoReverseMatch, reverse, resolve +except ImportError: + # Django < 2 + from django.core.urlresolvers import NoReverseMatch, reverse, resolve + from django.middleware.csrf import get_token, _sanitize_token, rotate_token from django import template +from django.utils.safestring import mark_safe from django.utils.translation import get_language from ssify.decorators import ssi_variable from ssify.utils import ssi_vary_on_cookie @@ -58,15 +64,19 @@ def ssi_include(context, name_, **kwargs): for var in pass_vars: if not isinstance(var, SsiVariable): var = SsiVariable(*var) + if not hasattr(request, 'ssi_vars_needed'): + request.ssi_vars_needed = {} request.ssi_vars_needed[var.name] = var # Remember the decorators to use on the including view. patch_response = getattr(view, 'ssi_patch_response', None) if patch_response: + if not hasattr(request, 'ssi_patch_response'): + request.ssi_patch_response = [] request.ssi_patch_response.extend(patch_response) # Output the SSI include. - return "" % url + return mark_safe("" % url) @ssi_variable(register, patch_response=[ssi_vary_on_cookie])