X-Git-Url: https://git.mdrn.pl/django-pagination.git/blobdiff_plain/6b4e8adb049d1e71d7f69e6ca562e5100624b789..b5f7065624d3f212ef9e22911478011789cc32b0:/linaro_django_pagination/templatetags/pagination_tags.py diff --git a/linaro_django_pagination/templatetags/pagination_tags.py b/linaro_django_pagination/templatetags/pagination_tags.py index 1a84c57..15363d8 100644 --- a/linaro_django_pagination/templatetags/pagination_tags.py +++ b/linaro_django_pagination/templatetags/pagination_tags.py @@ -40,6 +40,7 @@ from django.template import ( TOKEN_BLOCK, TemplateSyntaxError, Variable, + loader, ) from django.template.loader import select_template from django.utils.text import unescape_string_literal @@ -134,7 +135,7 @@ class AutoPaginateNode(Node): self.multiple_paginations = multiple_paginations def render(self, context): - if self.multiple_paginations or "paginator" in context: + if self.multiple_paginations or getattr(context, "paginator", None): page_suffix = '_%s' % self.queryset_var else: page_suffix = '' @@ -185,11 +186,9 @@ class PaginateNode(Node): to_return = paginate(context) if self.template: template_list.insert(0, self.template) - t = select_template(template_list) - if not t: - return None - context = Context(to_return) - return t.render(context) + return loader.render_to_string(template_list, to_return, + context_instance = context) + def do_paginate(parser, token): @@ -329,7 +328,11 @@ def paginate(context, window=DEFAULT_WINDOW, margin=DEFAULT_MARGIN): to_return['getvars'] = '' return to_return except (KeyError, AttributeError): - return {} + to_return = {} + + context.update(to_return) + + return context register = Library()