当用户单击按钮时,我正在尝试使用 JavaScript 生成 1 到 132(含(之间的随机数。
到目前为止一切顺利,它生成了价值,我能够获得所需的输出。
问题:我要在自定义 Django 过滤器(或任何它的名字(中使用生成的值。让我用我的代码更好地解释它:
<script type="text/javascript">
function random_generator()
{
var rand = [];
var i;
var j;
var text = "";
for(i = 0; i < 5; ++i)
{
rand[i] = Math.floor((Math.random() * 132) + 1);
text += rand[i];
}
document.getElementById('rand1').innerHTML = text; //Just trying to see if the numbers are generated properly
var text2 = "{%for i in allb %}{%if i.id == " + text + "|add:0 %}<p>{{ i.name }}</p>{% endif %}{%endfor%}";
document.getElementById('rand2').innerHTML = text2;
document.writeln(rand[0]);
}
</script>
以下是我尝试执行的其他操作:
<div id="b005" class="modal">
<div id="rand1"></div>
<div id="rand2"></div>
{%for i in allb %}
{%if i.id == **WANT TO USE THE JS VARIABLE HERE**|add:0 %}
<p>{{ i.name }}</p>
{% endif %}
{%endfor%}
</div>
注意:allb
是我从 views.py 传递的对象
还有其他方法可以做到这一点吗?
提前谢谢你:)
正如丹尼尔已经提到的,你必须首先了解幕后发生的事情。你的 django 模板只存在于你的服务器上,所有模板代码都在该服务器上执行。此模板代码也可用于非 html 渲染,就像您在 random_generator(( 脚本中所做的那样。
但浏览器仅接收模板的评估版本。所以不可能将你的 django 模板代码(服务器端(与客户端 js 进行比较。