Как преобразовать булевы значения 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}}");

Эта функция позаботится о формате и исправит проблемы со специальными символами и специфическими ключевыми словами.

Вернуться на верх