Django - Как динамически загружать сгенерированный SVG
Я пытаюсь загрузить SVG-графику во время выполнения на мою веб-страницу Django. Графика генерируется по запросу и зависит от различных пользовательских вводов.
Если я использую шаблоны, подобные этому:
{% extends "app/base.html" %}
{% block content %}
<h1>Internal Requirements Tree</h1>
<div>
{{ svg }}
</div>
{% endblock content %}
с соответствующим представлением:
def internal_reqs(request):
with open("some/path/to/graph.svg") as f:
base_image = f.readlines()
# remove XML header
while '<svg ' not in base_image[0]:
base_image.pop(0)
context = {
'title': 'Title',
'svg': '\n'.join(base_image),
}
return render(request, 'app/graph.html', context)
источник SVG будет напечатан, но не отображен.
Но если я помещу ту же строку из svg непосредственно в шаблон, как это:
{% extends "app/base.html" %}
{% block content %}
<h1>Internal Requirements Tree</h1>
<div>
{{ svg }}
</div>
<div class="center">
<svg width="570pt" height="100pt"
viewBox="0.00 0.00 570.00 100.00"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 96)">
....
</g>
</svg>
</div>
{% endblock content %}
он будет отображаться просто отлично.
Как правильно это сделать?