Django / Как оценить переменную django внутри выражения со скобками?

В моем html файле мне нужно определить переменную для js файла.

<script>
 var gltf_home = "{% static '/3d/ {{ scene.GltfFileToLoad }} ' %}";
</script>

что дает на выходе :

/static/3d/%7B%7B%20scene.GltfFileToLoad%20%7D%7D

вместо

/static/3d/00-world.glb

А эта альтернатива

var gltf_home = "{% static '/3d/' {{ scene.GltfFileToLoad }} %}";

дает

/static/3d/

Как правильно это сделать?

Вы можете работать с |add фильтром шаблонов [Django-doc]:

var gltf_home = "{% static '/3d/'|add:scene.GltfFileToLoad %}";

Но я бы посоветовал не делать так: выполняйте логику в представлении, и работайте с |json_script фильтром шаблона [Django-doc], это позволит правильно кодировать данные в JSON блоб, и таким образом предотвратит escaping и т.д.

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