Я хотел бы получить некоторую помощь для передачи переменной Django
в шаблоне HTML
в переменную Javascript
.
Я верил, что это будет легко, но до сих пор я не побеждаюсделать это.Особенно с Django for loop.
У меня есть фрагмент кода HTML, подобный следующему:
{% for document in publication.documents.all %}
<table class="table table-condensed">
<tbody>
<tr>
<td class="col-md-1">
<canvas id="test{{ document.id }}"></canvas>
</td>
</tr>
</tbody>
</table>
{% endfor %}
Затем я хотел бы использовать код Javascript для отображения PDF для каждого документа.
Итак, у меня есть что-то подобное с JS:
<script src="https://mozilla.github.io/pdf.js/build/pdf.js"></script>
<script type="text/javascript">
var document_upload = "{{ document.upload }}"; //Django variable
pdfjsLib.getDocument('http://localhost:8000/media/'+document_upload).then(function (pdf) {
console.log("pdf loaded");
pdf.getPage(1).then(function (page) {
var scale = 0.30;
var viewport = page.getViewport(scale);
var canvases = document.getElementsByTagName('canvas');
Array.from(canvases).forEach((canvas) => {
var context = canvas.getContext('2d');
canvas.height = viewport.height;
canvas.width = viewport.width;
var renderContext = {
canvasContext: context,
viewport: viewport
};
page.render(renderContext);
});
});
});
</script>
Но в моем шаблоне ничего не появляется.
Если я сделаю console.log()
для них:
var document_upload = "{{ document.upload }}"; //returns blank
var document_upload = {{ document.upload }} //returns Undefined
Может, кто-нибудь может мне помочь?Я не знаю, но я думаю, что мне нужно добавить цикл в JS в соответствии с этим циклом Django {% for document in publication.documents.all %}
?