Как преобразовать булевы значения False или True внутри вложенного словаря python в javascript в шаблоне Django?
вот мой views.py
context = {
"fas": fas_obj,
}
# TemplateResponse can only be rendered once
return render(request, "project_structure.html", context)
в разделе project_structure.html и javascript
const pp = {{ fas|safe }};
Я получаю ошибку здесь. потому что fas содержит булево значение False или True где-то глубоко внутри. fas сложна и имеет списки словарей с вложенными словарями.
Что сработало, я сделал вот так
context = {
"fas": fas_obj,
# need a fas_json version for the javascript part
# because of the boolean in python doesn't render well in javascript
"fas_json": json.dumps(fas_obj),
Теперь я знаю, что у меня две версии, потому что мне нужна первоначальная версия для другой части шаблона
в javascript
const pp = {{fas_json|safe}};
Есть ли более простой способ, чем передача оригинала и json-версии?
Попробуйте это:
const pp = JSON.parse("{{fas_json|safe}}");
Для переноса вложенных словарей из python в javascript я бы рекомендовал использовать следующее:
const pp = JSON.parse("{{fas_json|json_escape}}");
Эта функция позаботится о формате и исправит проблемы со специальными символами и специфическими ключевыми словами.