add json_script template tag (from django 2.1)
This commit is contained in:
parent
079ecde4f6
commit
d67b19fa65
|
@ -17,6 +17,7 @@
|
|||
|
||||
from collections import OrderedDict
|
||||
import datetime
|
||||
import json
|
||||
import math
|
||||
import operator
|
||||
import random
|
||||
|
@ -27,8 +28,10 @@ from requests import RequestException
|
|||
|
||||
from django import template
|
||||
from django.conf import settings
|
||||
from django.core.serializers.json import DjangoJSONEncoder
|
||||
from django.utils.dateparse import parse_datetime
|
||||
from django.utils.http import quote
|
||||
from django.utils.html import format_html
|
||||
from django.utils.text import slugify
|
||||
from django.utils.timezone import is_naive, make_aware
|
||||
from django.utils.safestring import mark_safe
|
||||
|
@ -674,3 +677,18 @@ def gnm_airquality_map(context):
|
|||
map_cell.max_zoom = '19'
|
||||
context.push(map_cell.get_cell_extra_context({}))
|
||||
return context
|
||||
|
||||
_json_script_escapes = {
|
||||
ord('>'): '\\u003E',
|
||||
ord('<'): '\\u003C',
|
||||
ord('&'): '\\u0026',
|
||||
}
|
||||
|
||||
@register.filter(is_safe=True)
|
||||
def json_script(value, element_id):
|
||||
json_str = json.dumps(value, cls=DjangoJSONEncoder)
|
||||
json_str = json_str.replace('>', '\\u003E').replace('<', '\\u003C').replace('&', '\\u0026')
|
||||
return format_html(
|
||||
'<script id="{}" type="application/json">{}</script>',
|
||||
element_id, mark_safe(json_str)
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue