我刚接触Django和Javascript(不到3周!),并且有一个可能很愚蠢的问题,所以对您的帮助将不胜感激。
在我当前的代码中,我有一个用HTML呈现的表格,其中包含以下代码:
<table border="1" class="dataframe">
<thead>
<tr>
<th>{{ results.0.columns.1 }}</th>
<th>{{ results.0.columns.1 }} </th>
<th>{{ results.0.columns.2 }} </th>
<th>{{ results.0.columns.6 }} </th>
</tr>
</thead>
<tbody>
{% for row in results.0.values %}
<tr>
<td> {{row.0}} </td>
<td> {{row.1}} </td>
<td><img src="{{row.2}}" alt="img" height="150"></td>
<td> {{row.6}} </td>
</tr>
{% endfor %}
</tbody>
</table>
如您所见,我在很多地方都引用了格式为{{someDjangoVariable}}
的django模板变量。
但是,我想用Javascript中创建的变量替换这些变量。我正在使用Javascript进行一些用户输入,最终改变了表的视图。
我的Javascript设置如下:
<script>
function myFunction() {
var index = someNumber
var string = `results.${index}.columns.0`;
document.getElementById('demo').innerHTML = string;
}
</script>
使用Javascript创建的string
变量会完全模仿Django模板变量。例如,string = results.0.columns.1
。
但是,我不确定如何将此字符串变量传递到HTML本身。理想的HTML格式如下:
<thead>
<tr>
<th>{{ string1 }}</th>
<th>{{ string2 }} </th>
<th>{{ string3 }} </th>
<th>{{ string4 }} </th>
</tr>
</thead>
<tbody>
{% for row in string5 %}
<tr>
<td> {{row.0}} </td>
<td> {{row.1}} </td>
<td> {{row.2}} </td>
<td> {{row.6}} </td>
</tr>
{% endfor %}
</tbody>
</table>
Any guidance on how I can do this?
答案 0 :(得分:1)
首先,没有愚蠢的问题,只是关于我们不知道的事情的问题,所以可以问。
说
Django在服务器端“构建”页面的HTML,到那时,您的js甚至没有梦想被执行。将内容(由Django先前生成的)下载到您的浏览器中后,即会执行Javascript。
如您所见,在使用Django模板系统生成HTML时,您不能使用js变量。在生成HTML时,这些变量不存在。
由于您像以前所说的对Django刚起步,因此我会给您一个建议,并由您自己来阅读。
答案 1 :(得分:1)
一旦您在运行JavaScript的浏览器中,便不再有Django模板的任何概念。然后,您正在处理纯html / javascript。
在这种情况下最常见的三种方法是: