您好,用户请告诉我如何break
在Jinja 2中进行循环
我在for
条件下使用if
循环,如果我的if
条件是true
,我想中断循环
这是我的代码
function refercheck(){
var input_value = document.getElementById('refer').value;
{% for i in refer %}
document.getElementById("valid").innerHTML = '';
if( input_value == "{{i.refercode}}" ){
$('#valid').append('Referred By {{i.username}}');
}
我在input onkeyup="refercheck()"
中使用此函数,并且从视图函数发送dict
,我的dict键是refer我正在发送所有用户数据,并检查输入是否与此给定的其他用户refercode相同我只有最后一行参照码是相同的,请告诉我如果条件为true或其他解决方案时如何中断循环
答案 0 :(得分:0)
根据this answer,您可以在for循环语句中添加条件
简单地:
function refercheck(){
var input_value = document.getElementById('refer').value;
document.getElementById("valid").innerHTML = '';
{% for i in refer if input_value == i.refercode %}
$('#valid').append('Referred By {{i.username}}');
{% endfor %}
更新:Jinja2不支持中断或继续陈述
您必须使用其他方法来解决此问题
这就是我的想法 我没有尝试代码,但这是个主意。
function refercheck(){
var input_value = document.getElementById('refer').value;
refer = {{refer|safe}}
for (i = 0; i < refer.length; i++) {
document.getElementById("valid").innerHTML = '';
if( input_value == i.refercode ){
$('#valid').append('Referred By '+i.username);
break;
}
}
}
如果i.refercode
和i.refercode
不起作用,请尝试i['refercode']
和i['refercode']
答案 1 :(得分:0)
循环控件 导入名称:jinja2.ext.loopcontrols
此扩展增加了对break和循环继续的支持。启用后,Jinja提供了这两个与Python完全相同的关键字。
提供了在模板循环中中断和继续的功能,就像标准的break和continue Python关键字一样。
来源:https://jinja.palletsprojects.com/en/2.11.x/extensions/#loop-controls
添加扩展在创建时将添加到Jinja环境。创建环境后,便无法添加其他扩展。要添加扩展,请传递扩展类列表或将路径导入到Environment构造函数的extensions参数。以下示例创建一个加载了i18n扩展名的Jinja环境:
jinja_env =环境(扩展名= ['jinja2.ext.loopcontrols'])
from django.templatetags.static import static
from django.urls import reverse
from jinja2 import Environment
def environment(**options):
env = Environment(**options, extensions=['jinja2.ext.loopcontrols'])
env.globals.update({
'static': static,
'url': reverse,
})
return env
答案 2 :(得分:0)
Jinja2 支持 a asp-page="./Delete" asp-route-id="@item.row_id" class="btn"
和 continue。您只需要安装 break
并激活 jinja 环境。
这是文档链接。 https://jinja.palletsprojects.com/en/2.11.x/api/?highlight=ext%20loopcontrols
我不确定这在 Django 中如何工作,但在 Flask 中,您只需在应用工厂中添加扩展:
ext.loopcontorls