diff --git a/src/cmsplugin_blurp/templatetags/blurp_tags.py b/src/cmsplugin_blurp/templatetags/blurp_tags.py index 9c1f66f..78789b6 100644 --- a/src/cmsplugin_blurp/templatetags/blurp_tags.py +++ b/src/cmsplugin_blurp/templatetags/blurp_tags.py @@ -1,8 +1,13 @@ import logging +import json from django import template from django.conf import settings from django.utils.html import escape +from django.core.serializers import serialize +from django.core.serializers.json import DjangoJSONEncoder +from django.db.models.query import QuerySet +from django.utils.safestring import mark_safe from classytags.arguments import Argument from classytags.core import Options, Tag @@ -11,6 +16,14 @@ from .. import utils register = template.Library() +# originally copied from django-jsonify(https://bitbucket.org/marltu/django-jsonify/) +# released under a three-clause BSD License by Marius Grigaitis +@register.filter +def jsonify(obj): + if isinstance(obj, QuerySet): + return mark_safe(serialize('json', obj)) + return mark_safe(json.dumps(obj, cls=DjangoJSONEncoder)) + @register.tag class RenderBlurp(Tag): name = 'render_blurp'